本篇文章给大家谈谈如何对接口进行压力测试,以及如何对接口进行压力测试操作对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享如何对接口进行压力测试的知识,其中也会对如何对接口进行压力测试操作进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
JMeter简单的接口压测实战
一、在JMeter界面进行测试
需要测试的接口: /api/firm/search
1、添加线程组 Thread Group
2、简单配置参数
3、添加http请求的默认值(为了方便)
配置基本信息,后面的http请求可以直接用,不用重复写了
4、添加http请求
5、为了查看结果,添加监听器
7、聚合报告中各字段说明
8、英文看着不习惯的朋友这么换成中文的
9、图形结果的话,如果线程数设置太小,就会看不出啥,把第二步中设置的并发数改成100你试试,就有曲线了。
二、命令行压测
1、将之前的 JMeter 中设置的整个测试计划存储为 jmx 格式。
2、开始开始
终端先进入你jmx文件存在的路径
输入: jmeter -n -t 你上一步存的那个名字.jmx -l 这是测试结果文件.jtl
参数说明:
4、也可以看web版的报告
终端输入: jmeter -g TestReport.jtl -o WebReport
参数说明:
5、成功后,你看你选择的存放路径 Desktop/test ,里面就有 index.html ,打开即可查看报告。
压力测试流程
一、压测流程
可参照上篇压测对抗流程
二、压测需求
需要明确需要压测的环境
需要压测的接口如何对接口进行压力测试,其中包含接口的入参
需要明确接口的预计qps
需要明确线上机器配置
三、压测准备
3.1、服务端开发准备:
1.根据需要测试的接口如何对接口进行压力测试,决定需要部署哪些相关依赖服务
2.测试接口对应的服务、接口
3.相关配置
4.相关数据库
5.需要的机器整理,其中包含机器的配置,需要几台机器
3.2、前端开发准备:
1.测试的接口和服务应用
2.域名
3.需要准备的机器
4.根据需要测试的接口,决定要部署哪些相关依赖
3.3、测试准备:
1.准备压测的测试方案和测试计划
2.通过接口确认压测的场景,其中包含每一个接口需要测试的场景,预计接口需要的压测线程。通过测试场景确认测试方案。
3.根据测试计划准备测试脚本
4.根据每一个接口的情况准备对应的测试场景。
5.根据测试场景准备需要的测试数据。其中会包含登录账号相关,接口返回有数据相关等。建议可以将线上的数据库直接copy一份到压测环境中
6.测试申请施压机器的权限
7.施压机上准备压测需要跑的工具
四、压测方案和计划
4.1、编写压测方案和计划
1.压测方案和计划的模板查看
2.在测试方案中将信息进行整合和处理,其中包含需要测试的接口,每一个流程对应的时间节点。
3.测试方案和测试计划确定后需要跟对应的人员(包含服务端开发、前端开发、测试人员、前端运维、服务端运维等)进行评审,确认最终的流程的时间节点。
4.根据测试计划中的时间输出对应的结果。其中包含服务券和前端代码部署、机器申请和部署、测试的测试脚本输出
4.2、测试编写测试脚本
1.确认测试接口是否依赖于登录,是否需要登录信息
2.确认需要测试的接口属于atop接口还是http接口。
3.确认需要编写哪些脚本
4.调试测试脚本5.
自动化脚本或者jmeter脚本编写,可查看jmeter使用
4.3、测试验证测试脚本
1.在日常环境对测试脚本进行验证,确定脚本能够正常跑
2.对测试接口需要的准备数据进行整理
3.对测试接口需要的断言进行准备
4.4、施压机上对压测环境的验证
1.将测试脚本中对应的域名和数据等换成压测环境的数据
2.在压测环境中对环境和脚本进行验证
3.与开发调试压测环境中的问题,并调试脚本问题
4.5、在压测环境中进行模拟压测
1.使用一个接口进行模拟压测,确认需要收集的图标信息、结果是否满足预期
2.确认施压机和压测机器是否正常,是否需要更换
3.确认需要采集数据的采集
4.确认断言方式是否ok
五、压测开始
5.1、正式压测:
1.开始正式压测,将各路人马(开发、运维、DBA等人进行封闭压测)
2.针对压测的接口进行决定接口压测的顺序
3.压测中需要逐渐增加线程数量
4.在压测过程中观察实时的qps和报错相关,并通知开发进行查询对应的接口响应时间。
5.根据接口的链路分别通知对应的人员进行查看压测过程中其接收时间、响应时间等。
5.2、当次压测结果分析:
1.当次接口压测结束后,对结果进行分析,确认压测后的qps、报错率、10%、50%、90%用户的响应时间
2.开发寻找对应浪费的时间,当场进行优化后,可以针对此接口在进行压测,以便找到性能瓶颈问题。
3.压测结果最终是需要找到最大的qps和开始出现报错的并发数
4.当前线程数对应的线程数,如没有达到对应的qps要求,可根据qps进行决定增加多少线程数。若线程数增加后,qps没有提高,大致已经找到qps的极限。
5.3、稳定性测试:
1.找到比较稳定的qps对应的线程数,进行稳定性测试
2.稳定性测试与压测的区别在于持续的时间。
3.可通过稳定性测试进行观察持续性调用接口时系统的表现。
4.后续可根据稳定性测试和压测的qps进行计算出对应的每日能够承受的日活量。
六、压测后测试报告整理
1.测试报告整理
a.对此次压测进行整理测试报告
b.测试报告中需要记录压测对应的时间节点、此次压测对应的qps、此次压测中的错误率
c.此次压测10%、50%、90%用户的响应时间
d.压测过程中出现的毛刺时间节点
e.压测过程中曲线不正常对应的原因。
f.此报告需要开发、测试同步进行整理
g.测试记录压测数据和图标
h.开发记录对应系统的cpu使用率、负载、数据库负载等信息。
i.测试报告模板
如何在linux操作系统上做接口压力测试
介绍个http_load压力测试工具,http_load,类似的工具还有webbench、ab、Siege。
1、下载
官方网站:http://acme.com/software/http_load/
复制代码
代码如下:
cd /root
wget http://acme.com/software/http_load/http_load-12mar2006.tar.gz
tar xzf http_load-12mar2006.tar.gz
2、安装
复制代码
代码如下:
cd http_load-12mar2006
make
执行完make,会在当前目录生成一个http_load二进制文件。
3、使用方法
复制代码
代码如下:
root@www:~/http_load-12mar2006# ./http_load --help
usage: ./http_load [-checksum] [-throttle] [-proxy host:port] [-verbose] [-timeout secs] [-sip sip_file]
-parallel N | -rate N [-jitter]
-fetches N | -seconds N
url_file
One start specifier, either -parallel or -rate, is required.
One end specifier, either -fetches or -seconds, is required.
主要参数说明:
-parallel 简写-p :含义是并发的用户进程数。
-rate 简写-r :含义是每秒的访问频率
-fetches 简写-f :含义是总计的访问次数
-seconds简写-s :含义是总计的访问时间
选择参数时,-parallel和-rate选其中一个,-fetches和-seconds选其中一个。
示例:
http_load -parallel 50 -s 10 urls.txt
这段命令行是同时使用50个进程,随机访问urls.txt中的网址列表,总共访问10秒。
http_load -rate 50 -f 5000 urls.txt
每秒请求50次,总共请求5000次停止。
4、基本的返回值
(1).49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds
说明在上面的测试中运行了49个请求,最大的并发进程数是2,总计传输的数据是289884bytes,运行的时间是10.0148秒
(2).5916 mean bytes/connection
说明每一连接平均传输的数据量289884/49=5916
(3).4.89274 fetches/sec, 28945.5 bytes/sec
说明每秒的响应请求为4.89274,每秒传递的数据为28945.5 bytes/sec
(4).msecs/connect: 28.8932 mean, 44.243 max, 24.488 min
说明每连接的平均响应时间是28.8932 msecs,最大的响应时间44.243 msecs,最小的响应时间24.488 msecs
(5).msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min
(6).HTTP response codes: code 200 -- 49
说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统遇到了瓶颈。
特殊说明:这里,我们一般会关注到的指标是fetches/sec、msecs/connect
他们分别对应的常用性能指标参数Qpt-每秒响应用户数和response time,每连接响应用户时间。测试的结果主要也是看这两个值。当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的cpu、men进行分析,才能得出结论
5、如果你需要测试https,你必须将 Makefile中
复制代码
代码如下:
# CONFIGURE: If you want to compile in support for https, uncomment these
# definitions. You will need to have already built OpenSSL, available at
# <a href="http://www.openssl.org/"http://www.openssl.org/a Make sure the SSL_TREE definition points to the
# tree with your OpenSSL installation - depending on how you installed it,
# it may be in /usr/local instead of /usr/local/ssl.
SSL_TREE = /usr
SSL_DEFS = -DUSE_SSL
SSL_INC = -I$(SSL_TREE)/include
SSL_LIBS = -L$(SSL_TREE)/lib -lssl -lcrypto
由于使用到openssl,你必须安装openssl和相应的开发环境
复制代码
代码如下:
apt-get install openssl
apt-get install libssl-dev</p <pfind -name ssl.h
/usr/include/openssl/ssl.h
Jmeter验证码注册接口压力测试实战
主要学习的内容包括发送HTTP请求、HTTP信息头管理器、HTTP cookies管理器、用户定义的变量、响应断言、CSV数据文件设置的使用。
提供的测试网址为: http://www.qk365.com/security/register
使用Chrome浏览器,先将浏览器的cookies缓存清空。
清空后,打开待测试的网址,按F12键,输入要注册的手机号码,如“18300987622”,点击“发送验证码”,可以看到请求的接口为: http://www.qk365.com/security/smsCode.do ,请求的参数为json格式的数据:{"mobile":"18300987622","func":"register","isValidate":"1","memKey":"register-18300987622","memValue":"7F4BEC3A-BE2F-48C7-91ED-33887E186C87"},在知道接口后,就可以开始我们的接口测试了。
默认环境已经有的条件下(这里不对jmeter运行环境如何搭建做过多的描述,请自行上网查找环境搭建的相关资料),双击jmeter.bat。出现如下界面设置工具的显示语言,Options→Chose Language→Chinese
完成上述步骤后,创建HTTP请求,包括:HTTP请求头,HTTP请求体以及察看结果树
1、在测试计划中添加线程组
2、在线程组中添加配置元件,HTTP信息头管理器,将刚才注册页面的请求头选中并且复制,在HTTP信息头管理器中单击“Add from Clipboard”完成请求头的复制
3、在线程组中添加HTTP请求,请求的请求体为图下内容
4、线程组添加察看树,点击启动按钮,查看请求结果
5、为响应结果添加断言,只有响应结果中包含"msg":"短信发送成功"的响应数据,这个请求才算是成功
模拟5个用户执行以上的测试过程,我们发现只有第一次是成功的,其余的返回"msg":"短信验证码发送过于频繁"
发现原来是每个请求的请求手机号是一样的,导致失败
这时候可以使用配置元件,CSV数据文件设置每次请求的手机号是不同的,在这里我准了一份手机号码的excel文件,需要注意的是保存这个文件的时候要保存成.CSV格式的,这里我将这份文件放到jmeter的examples目录下
在CSV数据文件配置中填写如下信息,然后修改验证码接口中HTTP请求的请求体,最后再执行一次,发现每次请求使用的手机号是不同的,并且请求成功
修改线程组参数,添加聚合报告等,对接口进行压力测,这里可以把察看结果树禁用了,因为在请求很多的情况下,会影响工具性能。最后等结果
需要注意的是启动jmeter.bat提示的那段话,压力测试要用非界面模式,界面模式用来生成脚本,调试没有问题了,再进行非界面的压力测试
这部分内容网上能查询包相关信息,这里不进行讲解。
这个平台可以频繁的刷验证码接口,这本身就是一个bug。前端的滑动验证功能就是形同虚设的。
如果你看到这里,希望你能看一下这一篇博文 Jmeter验证码图片识别注册接口压力测试实战 ,希望对你有所收获
如何使用jmeter进行接口测试
服务端系分提供的某接口样例为:
评估后可采用使用jmeter进行压力测试的步骤为:
启动jmeter:在bin下点击jmeter.bat,运行jmeter
2. 创建测试计划:
默认启动jmeter时会加载一个测试技术模板
3. 保存测试计划:修改名称为http_demo,点击保存,选择保存路径
4. 添加线程组
右键左边树中的测试计划“http_demo”节点,“添 加”---“线程组”,添加一“线程组”
添加成功后,“http_demo”节点下多了“线程组” 节点
5. 添加http默认请求:(用来配置公共参数,不是http请求)
右键线程组,选择“添加”—〉 “配置元件”—〉“HTTP请求默认值”,点击“HTTP请求默认值”后
添加成功后,线程组“节点下多了”HTTP请求默认值“节点
6. 设置”HTTP请求默认值“:
针对本项目填写如下,服务端的系分说明
填写默认请求名、服务器、默认请求路径,保存测试计划
7. 添加http请求
右键”http_demo“,选择”添加“—〉 ”Sampler“—〉”HTTP请求“
添加成功后,HTTP请求默认值”XX阅读平台“节点下发出现”HTTP请求“
8. 设置http请求
填写参考服务端系分:
填写完成,保存测试计划
9. 添加监听器:
右键线程组,选择”添加“—〉 ”监听器“—〉”察看结果树“
添加成功后,”线程组“下增加了察看结果树节点
10. 试运行
点击执行
参看请求和响应执行情况:执行成功如下,检查响应数据返回的正确性
11. 添加图表分析监听器
12. 修改线程组的线程数等参数,用于压力测试
13. 执行压力测试,参看数据
点击执行后,选择图形结果,观察压力测试的数据内容
14. 如需要用表格查看结果
选择”添加“—〉 ”监听器“—〉”用表格查看结果“
15. 设置”用表格查看结果“的主要参数:
Configure:点击”Configure“按钮,在弹出的窗口中选中”Save Response Data“ 项,以保存响应数据
关于如何对接口进行压力测试和如何对接口进行压力测试操作的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
如何对接口进行压力测试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于如何对接口进行压力测试操作、如何对接口进行压力测试的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~