如何高效进行 API 的接口性能压测?

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 还在等什么,快来一起讨论关注吧,公众号【八点半技术站】,欢迎加入社群

API 性能压测、简单/高效

Hello,大家好。我是公众号“八点半技术站”的小编-Bruce.D。

今天是周二(2020-04-14),分享一句谚语 “积累知识、胜过积蓄金银分享给大家的是 「工具 模块」- siege API 性能测试。

目前小编在业余时间开发一款PHP开源框架 - (BDB-frame)。各位放心,实战、实用的技术干货也不会中断,在这里希望能帮助到大家。也感谢大家的支持。

01

2分钟快速/准确/安装步骤

今天在这里我会分享给大家一款超实用工具-siege 。它是用来对我们写的API 接口做性能测试的。

为什么嘛推荐siege ,因为它整体安装步骤简单 - 返回参数详细 - 上手快。

有兴趣的朋友,可以根据此文操作操作,如果途中遇到问题(几乎不会),可以加入wechat 技术交流群(文章底部),进行提问解答。

第一步:

下载siege的安装包,我用的是siege-4.0.4.tar.gz 版本的。

下载地址:http://download.joedog.org/siege/

image.gif

第二步:

将刚才下载下来的安装包,上传到服务器,记得解压哈

第三步:

我们进入解压好的目录

cd siege-4.0.4.tar.gz

image.gif

然后我们执行

./configure

image.gif

继续执行

make

image.gif

第四步:

这就是最后,执行完下述步骤全部也就完成了。

make install

image.gif

大家看到,我拆分的 4 步法,还认为难吗?如果还有问题没关系,加技术群提问即可。

02

参数相关说明

第二部分就是会告诉大家参数的相关说明,在我们使用siege的时候,参数我们可以自行选择,包括压测后的一个参数介绍。

总结就是:传入参数 - 简单。返回参数 - 明了。

输入参数:

                参数名称                   参数说明
-V,-version 打印相关版本信息
-h,-help 打印相关帮助信息
-C,-config 显示相关配置信息
-g,-get 显示HTTP交易
-c,-concurrent 设置并发用户数
-u,-url="URL" 设置被测web的URL
-t,-time=NUM 设置测试时间
-r,-reps=NUM 设置测试次数
-f,-file=FILE 更改配置文件存档
-d,-delay=NUM 设置时间延迟
-l,-log 测试日志
-H,-header="text" 增加测试头文件
-A,-user-agent="text" 设置代理测试请求

返回参数说明:

image.gif编辑

这些参数分别代表:

           返回参数名称                    说明
Transactions 访问次数
Availability 成功次数
Elapsed time 测试用时
Data transferred 测试传输数据量
Response time 平均响应时间
Transaction rate 每秒事务处理量
Throughput 吞吐率
Concurrency 并发用户数
Successful transactions 成功传输次数
Failed transactions‍ 失败传输次数
Longest transaction 最长响应时间
Shortest transaction‍‍ 最短响应时间

03

使用方法案例

第一种 - get 方式:

参数说明:-c 是并发量,并发数为100,-r 是重复次数,重复6次,-l 是日志,将结果输出一份到日志(日志查看可以看配置目录默认指向地址)。

siege -c 100 -r 6 -l https://www.xxx.com

image.gif

其他参数根据自己压测需求进行添加。

第二种 - post 方式:

参数说明:如果你们的请求参数是json串的话,需要把请求参数改成 一个以 <./postfile.json  的文件,简单来讲就是 一个后缀是 .json 的文件

siege -c 200 -t 10s -b 'http://172.81.208.169:8282/v1/api/ad POST <./postfile.json'

image.gif

注意:还有一个小坑,比如post请求,json串,某些时候需要加请求头,那你 比如看上面参数 -H 后面跟信息,等等一系列。

到这里也就结束了、如果你有疑问,欢迎进入wechat技术群交流群。

在可以的前提下,关注一波公众号【八点半技术站】,也是我坚持的一种动力,谢谢。

————————end————————


恭喜你,又看完了一篇文章。

在这里,也希望你看完的每篇文章都能对自己有所提升(哪怕是帮助你再次巩固记忆)。

欢迎在wechat技术群一起交流成长(xzzs730)。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
2月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
102 2
|
7天前
|
供应链 数据挖掘 API
电商API接口介绍——sku接口概述
商品SKU(Stock Keeping Unit)接口是电商API接口中的一种,专门用于获取商品的SKU信息。SKU是库存量单位,用于区分同一商品的不同规格、颜色、尺寸等属性。通过商品SKU接口,开发者可以获取商品的SKU列表、SKU属性、库存数量等详细信息。
|
8天前
|
JSON API 数据格式
店铺所有商品列表接口json数据格式示例(API接口)
当然,以下是一个示例的JSON数据格式,用于表示一个店铺所有商品列表的API接口响应
|
18天前
|
编解码 监控 API
直播源怎么调用api接口
调用直播源的API接口涉及开通服务、添加域名、获取API密钥、调用API接口、生成推流和拉流地址、配置直播源、开始直播、监控管理及停止直播等步骤。不同云服务平台的具体操作略有差异,但整体流程简单易懂。
|
1月前
|
人工智能 自然语言处理 PyTorch
Text2Video Huggingface Pipeline 文生视频接口和文生视频论文API
文生视频是AI领域热点,很多文生视频的大模型都是基于 Huggingface的 diffusers的text to video的pipeline来开发。国内外也有非常多的优秀产品如Runway AI、Pika AI 、可灵King AI、通义千问、智谱的文生视频模型等等。为了方便调用,这篇博客也尝试了使用 PyPI的text2video的python库的Wrapper类进行调用,下面会给大家介绍一下Huggingface Text to Video Pipeline的调用方式以及使用通用的text2video的python库调用方式。
|
2月前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
8天前
|
JSON 前端开发 JavaScript
API接口商品详情接口数据解析
商品详情接口通常用于提供特定商品的详细信息,这些信息比商品列表接口中的信息更加详细和全面。以下是一个示例的JSON数据格式,用于表示一个商品详情API接口的响应。这个示例假定API返回一个包含商品详细信息的对象。
|
30天前
|
JSON JavaScript API
(API接口系列)商品详情数据封装接口json数据格式分析
在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦!
|
14天前
|
JSON API 开发者
1688API商品详情接口如何获取
获取 1688 API 商品详情接口的步骤包括:1. 注册开发者账号;2. 了解接口规范和政策;3. 申请 API 权限;4. 获取 API 密钥;5. 实现接口调用(选择开发语言、发送 HTTP 请求);6. 处理响应数据。通过这些步骤,可以顺利调用 1688 的商品详情 API。
|
2月前
|
安全 API 开发者
Web 开发新风尚!Python RESTful API 设计与实现,让你的接口更懂开发者心!
在当前的Web开发中,Python因能构建高效简洁的RESTful API而备受青睐,大大提升了开发效率和用户体验。本文将介绍RESTful API的基本原则及其在Python中的实现方法。以Flask为例,演示了如何通过不同的HTTP方法(如GET、POST、PUT、DELETE)来创建、读取、更新和删除用户信息。此示例还包括了基本的路由设置及操作,为开发者提供了清晰的API交互指南。
104 6