httprunner3 简学

全文大部分引用:https://docs.httprunner.org

httprunner2.X 和 3.X的区别:https://www.cnblogs.com/yoyoketang/p/15009395.html

image.png

图片引用 https://docs.httprunner.org/user/write_testcase/

1、安装

  • 安装:pip3 install httprunner
  • 版本:httprunner -V # hrun -V
  • 帮助:httprunner -h

注: pip安装时报错,及解决方法
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org’, port=443): Read timed out.
解决:pip --default-timeout=100 install 库名称 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

2、命令

  • httprunner: 主命令,用于所有功能。即可替换hrun / hmake / har2case使用
  • hrun =httprunner run,用于运行 YAML/JSON/pytest 测试用例
  • hmake =httprunner make,用于将 YAML/JSON 测试用例转换为 pytest 文件
  • har2case =httprunner har2case,用于将 HAR 转换为 YAML/JSON 测试用例
  • locusts: 用于运行locust 的负载测试

3、创建项目

  • 帮助:httprunner startproject -h
  • 创建新项目:httprunner startproject demo # 项目名称唯一 demo
  • 项目树:tree demo -a # brew install tree

demo
├── .env
├── .gitignore #版本管理
├── debugtalk.py
├── har
├── reports # 存储HTML报告
└── testcases # 测试用例
  ├── demo_testcase_ref.yml # 创建项目时,自动创建的可执行用例
  └── demo_testcase_request.yml

约定大于配置
1) debugtalk.py 存储项目其他逻辑函数

  • 每一个项目只有一个debugtalk.py。

  • 存放自定义的python函数。testcase中调用的函数均在文件中定义。

    如处理签名、时间戳、随机数、hook函数等

  • 作为项目的根路径锚点。testcase中的相对路径,基于该路径。

  • 该文件不存在时,运行测试的所在路径为项目工程根目录。

2).env 存储项目环境变量

  • 从第一行开始编辑,结尾不要有空行。
  • 格式为key=value,value不用引号包裹。

httprunner 2.X 项目还可有目录(3.X 弱化API层,去掉分层机制)
3)data 存储数据
4)api 存储api接口,最小单元接口测试
5)testsuites 存储测试场景

4、测试用例

4.1 用例属性

每个测试用例都是HttpRunner的子类,必要属性:

  • config:测试用例配置

    • name:用例名称,必选,显示在执行日志及报告中
    • base_url:请求地址,可选,如指定base_url,则teststep中只能写相对路径
    • verfiy:是否验证服务器TLS证书,可选,True/False。 可产生SSLError错误。
    • variables:测试用例公共变量,用例输入,可选
    • export:导出用户会话变量,用例输出,可选
  • teststeps:操作配置
    variables:测试步骤定义的变量
    extract:从当前Http请求响应结果中提取参数,并保存到参数变量中
    validate:测试用例中结果校验
    times:重复执行用例次数
    setup_hooks:在Http请求发送前执行hook函数,前置工作
    teardown_hooks:在http请求发送后执行hook函数,用于测试后清理
    request:向API发出请求,对响应验证或提取

    • name:测试步骤名称,显示在执行日志及报告中
    • variables:测试步骤变量
    • method:请求路径和方法,如指定base_url,则teststep中只能写相对路径,参见requests.request
  - requests.request     [https://docs.python-requests.org/en/master/api/#requests.request](https://docs.python-requests.org/en/master/api/#requests.request)
  • params:url指定查询的字符串,参见requests.request

  • headers:HTTP请求头,参见requests.request

  • cookies:HTTP请求cookie,参见requests.request

  • data:HTTP请求正文,参见requests.request

  • json:JSON中指定的HTTP请求,参见requests.request

  • jmespath:使用jmespath提取 JSON 响应正文。
    - 格式:with_jmespath(jmes_path:文本,var_name:文本)
    - 参照:jmespath表达式 https://jmespath.org/tutorial.html
    - var_name:存储提取变量名称,供后续使用

  • assert_xxx:使用jmespath提取 JSON 响应正文并使用预期值进行验证。
    - 格式:assert_XXX(jmes_path: Text, expected_value: Any, message: Text = “”)
    - expected_value:可使用指定的预期值、变量或函数引用
    - Text:只是断言错误原因,可选


    RunTestCase: 一个测试步骤中引用另一个测试用例

  • name:测试步骤名称,显示在执行日志及报告中

  • variables:测试步骤变量

  • call:指定引用的测试用例类

  • export:指定要从引用的测试用例导出的会话变量名称。

4.2 其他语法

1)变量:在variables中定义,引用格式为 $ varA
  variables:
  varA: “configA”
2)env变量:在.env中文件定义,key=value(没有引号),引用格式为 E N V ( k e y ) < b r / > 3 )函数:在 d e b u g t a l k . p y 中实现,引用返回值格式为 {ENV(key)}<br />3)函数:在debugtalk.py中实现,引用返回值格式为 ENV(key)<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值