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

简介: 还在等什么,快来一起讨论关注吧,公众号【八点半技术站】,欢迎加入社群

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进行规格选择与性能压测。
相关文章
|
23天前
|
缓存 前端开发 API
API接口封装系列
API(Application Programming Interface)接口封装是将系统内部的功能封装成可复用的程序接口并向外部提供,以便其他系统调用和使用这些功能,通过这种方式实现系统之间的通信和协作。下面将介绍API接口封装的一些关键步骤和注意事项。
|
29天前
|
DataWorks 安全 API
在DataWorks中创建的接口如果要使用API网关进行鉴权
【4月更文挑战第3天】在DataWorks中创建的接口如果要使用API网关进行鉴权
18 2
|
20天前
|
SQL API Python
Python DB API下规范下cursor对象常用接口
Python DB API下规范下cursor对象常用接口。
16 4
|
2天前
|
存储 缓存 运维
DataWorks操作报错合集之DataWorks根据api,调用查询文件列表接口报错如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
10 1
|
3天前
|
缓存 监控 API
|
3天前
|
SQL 数据管理 API
数据管理DMS产品使用合集之阿里云DMS提供API接口来进行数据导出功能吗
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
3天前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里函数计算中开启函数计算 API 接口如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
102 6
|
6天前
|
前端开发 Java 测试技术
IDEA 版 API 接口神器来了,一键生成文档,贼香!
IDEA 版 API 接口神器来了,一键生成文档,贼香!
19 0
|
7天前
|
API 开发者
邮件API接口使用的方法和步骤
AOKSEND指南:了解和使用邮件API接口,包括选择适合的接口(如AOKSEND、Mailgun、SMTP),获取访问权限,配置发件人、收件人及邮件内容,调用接口发送邮件,并处理返回结果,以高效集成邮件功能。
|
10天前
|
Java API Android开发
[NDK/JNI系列04] JNI接口方法表、基础API与异常API
[NDK/JNI系列04] JNI接口方法表、基础API与异常API
12 0