• 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]
  • 相关阅读:
    Text Link Ads 注册[赚钱一]
    Linux文件系统中的链接
    C++虚函数和纯虚函数(1)
    Android init reading tips
    Android上GDB的使用
    What is prelink?
    Linux fork哪些被继承,哪些不被继承
    为什么x86 Linux程序起始地址是从0x08048000开始的?
    Android应用开发的插件化 模块化
    C++拷贝构造函数(深拷贝、浅拷贝)
  • 原文地址:https://www.cnblogs.com/xiamaojjie/p/12095999.html
Copyright © 2020-2023  润新知