栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

HttpRunner--安装使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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函数进行参数化

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1018237.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号