Jmeter实现接口业务闭环测试脚本实例

面试官这样子问:

能举个你工作中实际发生的接口自动化测试例子吗?

参考回答:

我之前公司是业务是XXX,项目形式是在大型的稳定项目上不断的迭代新的需求,因此每次上线的时候,除了要保证新需求的正确性之外,还需要保证原系统主流程是通畅的。因此每次上线都要做一个固定的回归测试,一开始是大家都花一个小时左右去手动点那个主流程。后来我看重复工作实在是太繁重了,就做了一个Jmeter版本的接口自动化出来,比如用Jmeter自带的逻辑控制器,将登录接口放在仅一次控制器里,使用正则表达式或Json提取器获取到Token值后,后面的所有业务接口的请求头都带上这个Token值,然后实现后台管理系统里的增、查、改、删的业务闭环场景,因为自动化场景经常被运行,所以一定要做成业务闭环,不然只做新增的话,会堆积大量的测试数据,给服务器造成没必要的压力。

然后我做新增操作一般会应用上循环控制器,同时新增多条数据,查询接口查询出一个列表,然后在做改、删除操作等循环时,还需要用上计数器、定时器(模拟思考时间)等来辅助。

设计好脚本,在本地调通之后,我会把脚本上传到服务器上,然后使用Jenkins工具设置每天定时执行,如有问题就会给我发邮件,这样子就能及时发现问题,也省下了很多的手工回归测试的时间。

JMeter具体实现

建测试计划、线程组这些基础的操作就不多说,需要注意一下的有几点:

1、HTTP信息头管理:

如下图所示,一般接口文档标明必传的请求头包含Content-Type的话,就必须要加上,否则接口请求不了。然后token是令牌令牌,从安全性上考虑,必须要通过登录授权,获得token令牌后,其他接口在请求头传入token值才可以继续访问,因此将它加到请求头里。使用参数引用的方式(在登录接口用正则表达式或Json提取器提取出来)

 

2、HTTP请求默认值

为了不用之后每一个接口都写一次ip地址,可以全局一次性解决

 

3、登录接口跟仅一次控制器

一般做接口自动场景,除非是专门测登录接口,否则一般建议放进仅一次控制器里,只需要登录一次,后面的接口不管怎么循环都不会对它影响。而这个登录接口的主要目的是获取系统的授权。

 

如下图所示,为了安全起见,每次登录得到的令牌都会变,因此不能写死,只能将它每一次一值提取出来,作为全局参数,传到HTTP请求头里去。

 

这个JSON提取器不是必须要提取的。只是因为下面用的IF控制器,判断当登录成功了才跑后面的接口。所以为了判断登录成功,可以用JSON提取器将code返回值提取出来。

 

4、IF控制器

如需要对不同的条件做不同的操作,我们可以使用(if)控制器来实现

如下图所示,使用函数助手引用登录接口获取得login_code,并以等于200作为判断条件,点击生成后即可粘贴到IF控制器里。如果它不等于200,则整个控制器里的所有接口都不会跑。

 

 

5、新增接口

 

随机函数:

 

6、查询接口

因为新增是循环新增了多个,那么按名字关键字查询可以查出一个列表,然后将这个列表里的所有行都进行编辑和删除即可完成业务闭环。然后查询不需要循环控制器,仅需要查一次

 

7、调试取样器:

在查询接口后面加上调试取样器,是为了获取查出来的id和zoneName信息:

 

修改和删除,可以用循环控制器和ForEach控制器,使用效果一样,方法不同,分别写一个。

8、循环控制器和修改

首先循环次数不是写死的,需要根据查询出来的列表长度来决定

 

为了每次编辑的记录都是不同的,并且是从头到尾一条一条地改,需要加上一个计数器

 

修改接口

 

借助函数助手拼接多参数

 

9、ForEach控制器和删除

 

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter接口测试业务闭环是指在接口自动化测试中,通过模拟真实的业务场景,将多个接口请求组合成一个完整的业务流程,从而实现对整个业务流程的测试。下面是实现JMeter接口测试业务闭环的步骤: 1. 首先需要了解业务流程,将需要测试接口按照业务流程顺序组合成一个完整的业务闭环场景。 2. 在JMeter中创建一个测试计划,并添加线程组和取样器。 3. 在线程组中设置虚拟用户数、循环次数等参数,以模拟真实的用户场景。 4. 在取样器中添加需要测试接口请求,并设置请求参数、请求头等信息。 5. 使用逻辑控制器控制接口请求的执行顺序,确保业务流程的正确性。 6. 在请求之前或之后添加前置处理器和后置处理器,以模拟真实的业务场景。 7. 添加断言,判断接口请求是否成功,以及返回结果是否符合预期。 8. 添加定时器,控制接口请求的发送时间间隔,以模拟真实的用户场景。 9. 添加配置元件,设置请求期的配置信息,如Cookie、Token等。 10. 添加监听器,收集测试结果,如响应时间、吞吐量、错误率等。 下面是一个JMeter接口测试业务闭环的示例: 假设需要测试一个电商网站的下单流程,包括登录、添加商品到购物车、提交订单等接口。则可以按照以下步骤进行测试: 1. 创建一个测试计划,命名为“电商下单流程测试”。 2. 在测试计划中添加一个线程组,设置虚拟用户数为100,循环次数为10。 3. 在线程组中添加一个HTTP Cookie管理器,用于管理Cookie信息。 4. 在线程组中添加一个HTTP请求默认值,设置请求头信息。 5. 在线程组中添加一个HTTP请求,用于登录电商网站。 6. 在HTTP请求中添加一个正则表达式提取器,用于提取登录成功后返回的Token值。 7. 在线程组中添加一个HTTP请求,用于添加商品到购物车。 8. 在HTTP请求中添加一个HTTP头管理器,用于设置请求头信息。 9. 在HTTP请求中添加一个正则表达式提取器,用于提取添加商品成功后返回的商品ID。 10. 在线程组中添加一个循环控制器,用于循环执行下单流程。 11. 在循环控制器中添加一个HTTP请求,用于提交订单。 12. 在HTTP请求中添加一个HTTP头管理器,用于设置请求头信息。 13. 在HTTP请求中添加一个正则表达式提取器,用于提取提交订单成功后返回的订单ID。 14. 在HTTP请求中添加一个响应断言,判断请求是否成功。 15. 在测试计划中添加一个聚合报告,用于收集测试结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值