性能测试操作

Jmeter****使用mock测试性能

一、****背景

使用jmeter测试接口性能,接口调用逻辑如下:

Ø app—调用—>后台接口—调用—>第三方接口,准备压测的接口为后台接口。由于第三方接口暂未符合要求,不能被调用,但是调用后台接口的时候依赖第三方接口的返回值。这时候需要屏蔽第三方接口,给后台接口设置挡板,然后进行压测。

Ø 后台接口调用需要先获取access_token,由登录接口返回。

二、****工具

jmeter , fiddler , aliyun(资源监控)

三、脚本设计思路

image.png

i. 登录接口只需登录一次,使用正则表达式提取登录接口返回的access_token,然后把access_token设置成全局变量,后台接口拿到access_token后,循环调用。

ii. 使用fiddler给后台接口设置挡板,配置完成后,在jmeter的后台接口配置代理服务器地址。

四、****详细操作步骤

Jmeter****设置

1、设置http请求默认值:http协议和ServerName

image.png

2、新建线程组,命名为【login】,右键点击【login】线程新建http request请求,命名为【获取token】,新建【察看结果树】,执行后可以看到返回的access_token。

image.png

3、右键点击【获取token】请求,分别添加Regular Expression Extractor、Bean Shell Post Processor、JSON Extractor,详细设置参数如下,变量名需要根据自己实际设置的填写:

image.png

access_token 、”access_token”:”(.*?)” 、 1

image.png

String access_token=bsh.args[0];

print(access_token);

{__setProperty(request_access_token,{access_token},)}

image.png

access_token 、 $.request_access_token

4、新建一个线程组,命名为【后台接口】,请求头的Authorzation值为接口返回的access_token


image.png
image.png

5、(重要)在测试计划中勾选第一项

中文解析:独立运行每个线程组(在一个组运行结束后启动下一个),否则会出现后台接口拿不到token而导致报错。

image.png

6、运行脚本,返回成功

image.png

Fiddler****挡板设置

1、选择AutoResponder,点击Add Rule

image.png

2、输入【获取缴费信息】接口地址,选择返回的报文信息test.txt,点击save。勾选Enable rules

image.png

Test.txt内容如下,可以手动任意设置

image.png

3、fiddler设置代理端口: Tools - > Options - > Connections。

默认为8888,我本机的已被占用,所以设置为8880。(任意设置)

image.png

4、jmeter设置代理

127.0.0.1为本机地址,即常用的localhost,端口设置为8880

image.png

5、目前为止,所有设置已完成,调试执行结果如下


image.png

性能设置

1、 标题为mock性能,这时,我们只需要设置后台线程组的循环执行时间既可

设置5个虚拟用户,并发1800s(30分钟)

image.png

2、添加以下监控:Aggregate Report 、jp@gc - Active Threads Over Time、jp@gc - Transactions per Second、

注意:性能执行过程中需要把View Results Tree关闭,因为回显返回值会占用压测机的资源。

image.png

性能结果分析

1、按照以上步骤执行完成后,点击Aggregate Report查看结果,主要关注3个参数:95%Line、Error%、Throughput(tps)

image.png

95%Line:95%line的响应时间,单位为ms,上面为95%的请求响应时间为0.27s

Error%:错误率,如果是支付类型的接口,涉及到钱的,基本是不允许有错误率。如果是一些简单的业务,可允许小错误率,例如1%。得看具体场景来定。

Throughput:吞吐量,即每秒钟处理的请求事务数,TPS值根据它来确定。

(本接口业务方提供的tps为50,测试实际结果为89.9/sec,所以符合要求)

2、资源消耗:根据下面的图表分析,CPU和MEM都低于80%的使用率,服务器正常

应用服务器

image.png

数据库服务器

image.png

结果:性能结果满足业务方提供的需求

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、为什么离职? 这个根据自己的实际情况说明,列如: 公司节奏较慢,职业遇到瓶颈,没有什么成长和进步 出于长远发展...
    QLQ_f193阅读 1,070评论 0 2
  • 在众多类型的软件测试中,性能测试以软件响应速度为测试目标,尤其是在较短时间内大量并发用户的访问时,软件是否具有良好...
    robot_test_boy阅读 1,493评论 0 4
  • 性能测试相关概念 并发用户数(VU):系统同时处理的request/事务数 QPS(TPS)(transactio...
    johnny_zhao阅读 531评论 0 0
  • 项目背景: 想针对某系统的首页进行性能优化,经埋点在ES里面分析,未处理订单通知模块是导致应用服务器CPU高的主因...
    果果酱ya阅读 2,928评论 3 22
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,605评论 28 53