Jmeter HTTP接口案例开发、调试方法

  • HTTP接口案例开发的步骤为:
    1.了解要开发案例的业务流程,比如新增案例,是否有其它前置条件,如果有,就需要先开发好前置条件的案例
    2.手工开发案例或者通过jmeter录制功能开发案例
    3.对案例进行调试,响应结果和预期结果一致,则案例开发完成
  • 对于简单的案例,建议直接手工编写,涉及到上传附件、导入excel,等复杂案例建议录制脚本

一、开发脚本

手工编写脚本


1. 本次案例为新增角色,一般我们使用谷歌浏览器进行页面操作,然后按F12显示接口请求

2. 输入必填项,点击保存按钮,接口请求显示如下,根据经验可以判断新增请求接口类型为post,或者请求名称save,还有请求参数可以找到新增的接口如下:


3. 本次案例在通讯录管理》个人详情管理》特例用户设置菜单下,建议开发脚本层级通过循环控制器区分,如下所示: 
4. 添加方法,右键点击需要添加控制器的菜单,添加》逻辑控制器》循环控制器

5. 新增角色,脚本如下,由于我们使用HTTP请求默认值、HTTP信息头管理器对域名、协议类型、端口、表头等进行管理,所以该请求这些参数不用填写

6. HTTP请求默认值:

7. HTTP信息头管理器,填写token和表头类型

8. Jmeter调试响应结果和页面响应结果一致,页面数据新增成功:


Jmeter录制脚本


1. 本次案例为批量导入用户,由于涉及到excel导入功能,如果对接口请求不熟悉,手动开发可能有压力,接口请求如下:

2. jmeter录制方法,首先设置代理,代理设置如下,打开浏览器,Internet选项,地址为127.0.0.1、端口只要未被占用就行,如8888,勾选为LAN使用服务器,点击确定按钮:

3. 设置好代理,就可以进行录制操作了,打开jmeter,操作如下图所示: 


4. 点击启动按钮,就可以进行录制操作了,建议先打开谷歌浏览器,进入到个人详情管理界面,在打开代理进行录制,录制脚本如下:
 
5. 脚本需要修改Parameters中的appKey参数,该参数为应用id,还需要修改File Upload下的文件参数路径,修改成了相对路径,并且兼容windows和linux环境,并且删除了公共的协议、服务器、端口如下:



 
6. Jmeter调试响应结果和页面响应结果一致,页面数据新增成功
 

二、调试脚本

 开发案例最重要的一个环节就是调试脚本,特别是接口自动化案例,经常需要维护,本模块讲解调试脚本的常用方法,熟悉了调试的方法,所有案例调试起来都不会感觉头痛了
 常用的方法就是拿jmeter请求参数和fiddler抓包请求进行对比,看有哪些参数有问题,从而解决问题 HTTP的请求报文分为三个部分 请求行、请求头和请求体,格式如图:



1. 本次选择批量导入案例接口进行调试,jmeter执行结果请求如下:


2. 手动批量导入案例,fiddler抓包结果如下:

3. 经过对比发现,本次在jmeter运行失败,是由于请求头类型申明为application/json,不用申明表头类型,默认即可

4. 调试结果:



5. 根据以往的案例开发经验,调试报错,多半是变量为空、请求方法不正确,文件路径不正确,或者格式不正确导致,所以多用下Debug Sampler,该元件可以查看到所有变量

6. 有小伙伴会说,如果请求的参数太多,怎么对比,看起来会头晕,别怕,这里介绍一款工具给你,BCompare–代码比对工具,如果要比对的请求是json格式,首先需要进行格式转换,转换地址https://www.json.cn ,首先获取jmeter请求参数,转换完成,复制到compare文件对比框中,如下图所示



7. 然后通过手工请求,获取请求参数,这里可以直接使用F12调试,获取实际请求参数就行,不用通过fiddler获取,拷贝请求参数,因为是json格式,还是需要通过格式转换,如图所示


在介绍一个好用的功能,只需要在用户定义变量申明要测试的环境,不用为每次切换环境,而要修改很多全局变量而头疼,使用If控制器读取变量,就可以让脚本自动读取需要测试环境的变量,如下:





如果文章对你有帮助,欢迎关注本人公众号,公众号与本平台文章同步,方便大家查阅,本人会持续推出与测试有关的文章,与大家分享测试技术,每一篇原创文章都是用心编写,杜绝抄袭复制


QQ技术交流群:加群请输入验证信息 博客园
              在这里插入图片描述


微信二维码关注公众号:

在这里插入图片描述


关注之后,回复资源下载,即可获取本人共享的各种资源下载地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dkyHNY2D-1569554485737)(https://s1.51cto.com/images/blog/201908/06/2e62f8806e1dc1c391c4332ac7fd70b1.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)]

原文地址:https://www.cnblogs.com/Jmeter-Automation/p/12730514.html