HttpRunner--安装使用

1.安装

        pip3 install httprunner==3.1.9

2.创建httprunner测试引擎

安装完成后会自带hrun,httprunner命令,用于运行测试用例,管理操作等.

3.项目结构

        api目录:用于存放接口的最小单元(正向用例)

        reports目录:存放测试报告

        testcases:处理接口的复杂执行逻辑,如接口依赖的用例

        testsuites:用于批量执行用例,可以实现数据驱动测试

        .env:存放全局环境变量

        debugtalk.py:定义python函数,处理动态参数 

4.接口示例

        test_engine/api/login_api.yml

# name 指定当前用例名称
name: 登录接口
# variables:指定当前文件中用例的变量
variables:
    username: jeanet
    pwd: 123456
# request:指定当前接口的配置信息
request:
    url: http://127.0.0.1:8000/projects/projects/
    method: GET
    headers:
        Authorization: "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjU4MzEzMTEzLCJpYXQiOjE2NTgzMDk1MTMsImp0aSI6IjViOWU0Y2IyMzIxYTQxYmU5MjhlOGNlNDVjNGVlMjM2IiwidXNlcl9pZCI6MX0.HRERsmwZxmmo2vjCO2B0DRMhPvLsACHc7OCllClXPRc"
        # 指定请求体为json格式数据时的请求头
        Content-Type: "application/json"
        # 指定请求体为form表单格式数据时的请求头
#        Content-Type: "application/x-www-form-urlencoded"
    # json: 指定请求体为json格式数据
#    json:
#        username: $username
#        password: $pwd
    # data:指定请求体为form表单格式数据
#    data:
#        username: $username
#        password: $pwd

    # params: 指定路径中的查询字符串参数格式
    params:
        page: 1
        size: 3
# validate:指定校验器
validate:
    - eq: ["json.results.0.id", 8]

5.执行测试

        5.1 hrun xx命令行执行

        hrun 用例文件的绝对路径

         hrun xxxx/test_engine/api/login_api.yml

         5.2 python程序执行

                创建执行文件test_engine/run.py

from httprunner.api import HttpRunner

hrun = HttpRunner()
hrun.run(r'/Users/jeanettian/test_platform/test_platform/test_engine/api/login_api.yml')
print(hrun._summary)

                运行

6.base_url:

        当设置了base_url后,在request部分的url无需使用$base_url,在测试时如果检测到有base_url变量,会自动进行拼接. 

7 .env中的环境变量使用

         通过${ENV(变量名)}引用.env文件中定义的全局环境变量

8.debugtalk.py的使用

9.testcases的使用

        ##  test_engine/api/login_api.yml

# name 指定当前用例名称
name: 登录接口
base_url: ${ENV(base_url)}

# variables:指定当前文件中用例的变量
variables:
    username: ${ENV(USERNAME)}
    pwd: ${ENV(PASSWORD)}
# request:指定当前接口的配置信息
request:
    url: /user/login/
    method: POST
    headers:
#        Authorization: "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjU4MzEzMTEzLCJpYXQiOjE2NTgzMDk1MTMsImp0aSI6IjViOWU0Y2IyMzIxYTQxYmU5MjhlOGNlNDVjNGVlMjM2IiwidXNlcl9pZCI6MX0.HRERsmwZxmmo2vjCO2B0DRMhPvLsACHc7OCllClXPRc"
        # 指定请求体为json格式数据时的请求头
        Content-Type: "application/json"
        # 指定请求体为form表单格式数据时的请求头
#        Content-Type: "application/x-www-form-urlencoded"
    # json: 指定请求体为json格式数据
    json:
        username: $username
        password: $pwd
    # data:指定请求体为form表单格式数据
#    data:
#        username: $username
#        password: $pwd

    # params: 指定路径中的查询字符串参数格式
#    params:
#        page: 1
#        size: 3
# validate:指定校验器
validate:
    - eq: ["status_code", 200]

         ##  test_engine/api/projects_list_api.yml


name: "获取项目列表数据接口"
variables:
    base_url: ${ENV(base_url)}
    token: $token

request:
    url: $base_url/projects/projects
    method: GET
    headers:
        Authorization: "Bearer $token"
        Accept: "application/json"
    params:
        page: 2
        size: 3
validate:
    - eq: ["status_code", 200]

        ## test_engine/testcases/project_list_case.yml


config:
    name: "获取项目列表数据接口测试"
    variables:
        username: ${ENV(USERNAME)}
        password: ${ENV(PASSWORD)}
    base_url: ${ENV(base_url)}

teststeps:
-
    name: "先登录"
    api: test_engine/api/login_api.yml
    variables:
        user_agent: 'iOS/10.3'
    extract:
        - token: content.token
-
    name: "获取项目列表数据接口"
    api: test_engine/api/projects_list_api.yml

运行测试

 10. testsuites使用

        可批量执行测试用例,可数据驱动

        ## test_engine/testsuites/all_testsuite.yml

         ## test_engine/api/login_api.yml

         csv及debugtalk.py函数进行参数化

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chuntian_tester

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值