接口测试-jmeter篇

利用jmeter可以对接口之间进行关联,也可以通过参数化方式进行值得遍历,当然,也可以使用内置函数进行参数化等其他的需求。下面通过几个接口进行如上的示例

一:接口的参数化

这里有两个接口,一个注册,一个登入。在注册、登入的用户名中进行参数化

登入接口说明:

分析接口,用户名课进行参数化。设定参数化文档:

在jmeter工具中添加cvs

在登入接口中引用:

接口响应:

二:使用jmeter进行关联

如上接口,此接口需要成功,前提条件是:拿到登入返回的sign。问题来了,一个是登入接口,一个是添加金币的接口,如何让添加金币的接口拿到登入接口返回的sign呢?答案是关联。

对接口返回值的取值有两种方法:1、后置处理器的正则表达式取值方法 2、json表达式,注意哦,一定是后置处理器,因为是接口处理请求完后返回的结果,所以动作发生在接口和服务端交互完成后并且返回了结果的后面。好了,废话不多说,我们看操作

分析登入接口的返回值,我们发现返回的格式类型是json,自然而然的想到要用json格式的后置处理器

{
        "error_code": 0,
        "login_info": {
                "login_time": "20180812191620",
                "sign": "e00af804a0a440ed4728cfca54fb54dd",
                "userId": 8586
        }
}

json表达式====>$表示根目录 .表示直接子属性,这块学过xpath的表达式的,触类旁通便可

我们需要的值是sign,所以json的表达式为$.login_info.sign

添加金币处调用即可${sign}

三,jmeter函数的调用

jmeter中有很多内置的函数,__random    __time  __counter等,在这次的接口测试中,有一个接口,添加学生的接口

从上面接口分析来看,用户名和电话需要进行参数化,此时,如果参数化,会特别的折腾,需要“投机取巧”。设想,如果把电话号码后四位进行随机生成呢?名字的前缀相同,后缀进行随机呢,是不是可以免去大量的参数化工具呢?随机了多少次,能不能直观的看到呢?

 {
    "name":"admin${__Random(0,10000,)}",
    "grade":"金牛座",
    "phone":1367002${__Random(0,10000,)},
    "sex":"女",
    "age":18,
    "addr":""
  }

记录接口运行时间

在it界,时间有两种时间,一个是时间戳,一个是现实业务上的时间即通常我们说的时分秒。

时间戳:自计算机诞生以来到目前为止中间经过了多少S,java的程序应用中是MS为单位的,所以在转换的时候,需要进行ms和s之间的转换。__time函数,如果不设定日期yyyyMMddHHmmss  (24小时制)    yyyyMMddhhmmss (12小时制)

“时间戳在线转换工具”  https://tool.lu/timestamp/

*******************************************************************************************************************************************************************************************************************************************

猜你喜欢

转载自www.cnblogs.com/miyatest/p/9499021.html