• 【JMeter】HTTP请求示例以及事务控制器的使用


    背景

      在平常开发中,Jmeter一般用得多的可能是对单个接口进行。不过排除在开发中会遇到这样的需求,就是一个业务需要先调用一个接口获取相关数据后,作为下一个接口调用的参数,此时接口间的调用是有时序的,在Jmeter测试此类业务时,就需要用到其中的【事务控制器】。

      下面记录一项调用小程序二维码的过程,主要的实现是两个接口:

    1.  调用 auth.getAccessToken 接口获取 access_token ;
    2.  用上面获取的 access_token 调用 wxacode.createQRCode。

      相关接口说明文档的连接:

      https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html

      https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.createQRCode.html

    JMeter

    添加线程组

      新打开的JMeter界面中,只有一个默认的【测试计划】,我们需要在【测试计划】中添加一个【线程组】:

      

     添加用户定义的变量

      【用户定义的变量】可设置一些变量数据用于后面测试的请求中引用:

      

       看上面的图,要选第一个才是在环境中设置一些变量,至于另外一个,是设置一个全局的请求参数,每个测试的请求都会带上其中设置的变量数据。

      在这里,我们把小程序的AppID和Secret (可通过小程序测试号申请) 保存在变量列表里:

      

    添加事务控制器

      到此就是关键点,多个请求形成顺序执行的一个事务,就需要一个【事务控制器】来管理,故在【线程组】中添加一个【事务控制器】:

      

      后面的就和添加单个测试请求一样的,事务中具体的执行顺序是从上往下走的。

    添加HTTP请求

      【HTTP请求】的添加如下:

      

      auth.getAccessToken

      auth.getAccessToken接口测试的相关参数设置如下:

      

       从上图中,可以看到在请求参数列表里,appid和secret字段不是一个具体的值,而是对【用户定义的变量】列表中的变量进行引用。

      察看结果树

      启动前记得添加【监听器】的【察看结果树】,不然无法观察测试请求后的结果:

      

      启动测试

      

      添加JSON提取器

      在上一步,启动了测试,也成功从接口返回了相关数据,但这样的结果我们是没办法使用的,如要使用接口返回的数据,我们还要添加一些接口的【后置处理器】,这里从结果看都知道是需要一个【JSON提取器】:

      

      有了【JSON提取器】,我们还要配置提取器从结果中提取那些参数数据:

      

      Names of created variables:提取后的变量名,可提取多个元素,则参数名称写多个,用英文分号分开;

      JSON Path expression:json提取器语法用英文分号隔开,应当与参数名称一一对应

      Match No.(0 for Random):匹配编号一样的需要用英文分号隔开,与参数名称一一对应

      Default Values:默认值同样用英文分号隔开,与参数名称一一对应

      设置成功就可以在后续的请求中,像引用【用户定义的变量】列表里的变量一样引用了。

      wxacode.createQRCode

      

      从上图看,在【路径】中引用了前面一个接口返回的access_token;

      添加HTTP请求的头部信息

      因为这个请求是POST方式的,而且消息体的数据是JSON格式的,故要想调用成功还需要请求体的头部信息:

      

      并设置Content-Type的值:

      

      

     添加事务【察看结果树】

      到了上面一步,其实已经完成了接口调用的所有设置了,但为了察看此事务的执行结果,可在【事务控制器】下添加一个【察看结果树】,具体操作不说了。

      最后的结果:

      

       

      

  • 相关阅读:
    CMD文件分析
    #ifdef __cplusplus
    nginx查看post请求日志
    JNI常见错误1
    include、include_once与require、require_once区别
    在Windows下利用Eclipse调试FFmpeg
    在Windows下利用MinGW编译FFmpeg
    图文详解YUV420, yuv格式2
    yuv rgb 像素格式1
    libyuv 编译for ios
  • 原文地址:https://www.cnblogs.com/dilex/p/13945115.html
Copyright © 2020-2023  润新知