zoukankan      html  css  js  c++  java
  • 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=)]

  • 相关阅读:
    Coursera机器学习week11 单元测试
    关于 TypeReference 的解释
    getModifiers 方法解释。
    instanceof isInstance isAssignableFrom 比较
    elasticsearch 基础 语法总结
    kibana 启动 关闭 和进程查找
    MD5 SHA1 SHA256 SHA512 SHA1WithRSA 的区别
    spring boot 项目 热启动
    java zip 压缩文件
    Packet for query is too large (1660 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
  • 原文地址:https://www.cnblogs.com/Jmeter-Automation/p/12730514.html
Copyright © 2011-2022 走看看