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]
原文地址:https://www.cnblogs.com/xiamaojjie/p/12095999.html