JMeter和Postman的一个区别就是,JMeter可以多个接口一起进行测试,Postman是单独的一个接口进行测试。

多个接口一起测试在某个场景下比较好用,比如:

    一个卖家后台管理系统,现在对其进行三个接口测试,分别是商品列表、添加订单、订单详情。
实际项目中会给出接口文档进行接口测试。

  • 请求方式:参考接口文档 
  • 请求参数:参考接口文档
  • 返回参数:参考接口文档

    使用Postman进行接口测试就是把每一个接口单独测试,每次单独执行。

  • 创建订单里的商品id这个参数可以直接从商品列表里面获取
  • 创建订单后,直接把订单详情也测试,此时我们需要使用动态获取接口的返回值,创建订单会创建一个订单号,那么我们就直接使用创建订单这里的订单号来测试订单详情,让他们一起执行。

    有两种方法比较常用

  • 正则表达式法
  • JSON提取器

使用JMeter动态获取其他接口的指定返回参数进行自动化测试:

前言:使用JMeter会出现一些报错以及比较麻烦的设置项,Postman则不容易出现报错,出现错误后如何解决就靠我们的经验了,有时候由于中英文翻译也会出现一些问题,建议使用中文熟悉后还是使用英文版的JMeter

过程:

  1. 测试计划中创建setUp线程组
  2. setUp线程组添加三个取样器HTTP请求,命名为商品列表、添加订单、订单详情
  3. 添加一个配置元件HTTP信息头部管理器,放在测试计划下,和setUp同级
  4. 添加监听器-察看结果树,先运行一次不需要传入任何参数的商品列表,Text里面看取样器结果找到需要放在HTTP信息头部管理器中的名称和值 例如:Content-Type / application/json;charset=UTF-8  
  5. 察看结果树里面可以看到商品列表的响应数据(返回参数),选择JSON Path显示格式比较好看,或者把Text内容复制区JSON在线解析网站(http://json.cn/)结果例如:
    【软件测试】JMeter接口测试——动态获取其他接口的返回值实现接口自动化测试
    会有很多,就不全部展示了,我们想要的商品id在foods里
  6.  使用JSON提取器提取商品id返回值,在商品列表-添加-后置提取器-JSON提取器-Names of created variables(idone 这个里面的就是之后我们在创建订单里面要用${}去获取的值)-JSON Path expressions(这里是JSON提取器的格式,$.data[2].foods[0].id,意思是data中的第三个对象里面的第一个foods的id)
  7. 创建订单里面的特定传入参数就写为${id_one},如果不用JSON动态获取,我们则需要去数据库中,或者去商品列表中复制粘贴过来。
  8. 使用创建订单的返回值订单id,来测试订单详情,这里我们使用正则表达式方法来测试,创建订单-添加-后置处理器-正则表达式提取器
    【软件测试】JMeter接口测试——动态获取其他接口的返回值实现接口自动化测试
    引用名称是自己取的,"orderId":"(.*?)"正则表达式是规范,正则表达式里面的orderId这个参数名,我们需要去察看结果树中查看创建订单的响应数据,找到这个名称
    【软件测试】JMeter接口测试——动态获取其他接口的返回值实现接口自动化测试
    然后在订单详情里,传入参数填写${orderId}
  9. 最后我们把这三个一起选中,一起开始执行测试,观察运行结果。

补充:

  1. 这里可以用正则表达式测试返回值
    【软件测试】JMeter接口测试——动态获取其他接口的返回值实现接口自动化测试
  2. setUp线程组-添加-调试取样器 在察看结果树里面可以看到你设置的所有提取器提取的各个值

 

 

 

相关文章: