hrunrunner实现接口参数关联和参数化

Posted xiamaojjie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hrunrunner实现接口参数关联和参数化相关的知识,希望对你有一定的参考价值。

解决参数关联有2种方式:extract提取参数,debugtalk辅助函数获取。

先看第一种,extract提取参数:

登录成功后直接用extract提取返回content里面的token参数:

技术图片

然后在下一个请求里面直接用$token去引用

技术图片

第二种:debugtalk辅助函数获取

先建立一个debugtalk.py结尾的文件,然后在写一个登录获取token的函数,内容如下:

import requests

url = http://49.235.92.12:9000/api/v1/login


def get_token(username=test, pwd=123456):
    body = {"username": username, "password": pwd}
    header = {"User-Agent": "Mozilla/5.0", "Content-Type": "application/json"}
    r = requests.post(url=url, json=body, headers=header)
    try:
        result = r.json()
        token = result[token]
        return token
    except Exception as e:
        print(获取失败原因{}.format(e))
        print(返回结果{}.format(r.text))
        return ‘‘


if __name__ == __main__:
    print(get_token())

接下来就是在yml文件用${get_token()}引用这个函数,将登录的token值传递到请求头里面

技术图片

最终运行结果:

技术图片

要在hrun里面实现参数化也是很简单的,只需要加上parameters的参数,添加上对应的参数,然后引用参数就可以了。

技术图片

yml文件如下:

-   config:
        name: testcase description
        variables:
          pwd: 123456
        parameters:
        - username: [test,test1,test2]


-   test:
        name: /info
        request:
            headers:
                Content-Type: application/json
                User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
                    (Khtml, like Gecko) Chrome/78.0.3904.108 Safari/537.36
                Authorization: Token ${get_token($username,$pwd)}
            method: GET
            url: http://49.235.92.12:9000/info
        validate:
        -   eq: [status_code,200]
        -   eq: [content.code,0]
        -   eq: [content.data.0.name,test]

以上是关于hrunrunner实现接口参数关联和参数化的主要内容,如果未能解决你的问题,请参考以下文章

jmeter的参数关联(参数依赖)

python接口自动化6-参数化关联

pytest中的关联参数化日志及测试报告

__postman__关联及读取文件进行参数化

postman参数化

手把手教会使用Jmeter进行压测,涉及参数提取参数关联CSV参数化