zoukankan      html  css  js  c++  java
  • 【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的值:

      

      

     添加事务【察看结果树】

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

      最后的结果:

      

       

      

  • 相关阅读:
    zoj 3627#模拟#枚举
    Codeforces 432D Prefixes and Suffixes kmp
    hdu 4778 Gems Fight! 状压dp
    CodeForces 379D 暴力 枚举
    HDU 4022 stl multiset
    手动转一下田神的2048
    【ZOJ】3785 What day is that day? ——KMP 暴力打表找规律
    poj 3254 状压dp
    C++中运算符的优先级
    内存中的数据对齐
  • 原文地址:https://www.cnblogs.com/dilex/p/13945115.html
Copyright © 2011-2022 走看看