IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 测试框架HttpRunner—2.结构解析 -> 正文阅读

[开发测试]测试框架HttpRunner—2.结构解析

一、结构解析

HttpRunner v3.x 支持三种测试用例格式,即 pytest,YAML 和 JSON。

1.1、用例结构

每个测试用例都是 HttpRunner 的子类(一个类即为一个测试用例),并且必须具有两个类属性:config?和?teststeps

  • config:配置测试用例级别的设置,包括 base_url,verify,variables,export。

  • teststeps:测试步骤的列表(List [Step]),每个步骤对应一个 API 请求或另一个测试用例的应用。此外,还支持?variables/extract/validate/hooks?来创建极其复杂的测试方案。

1.2、链式调用

 HttpRunner v3.x 的最强大功能之一是链式调用,使用它无需记住任何测试用例格式的详细信息,并且在 IDE 中编写测试用例时可以智能完成。

1.3、config下的属性设置

1.name 必填 用例名称

 运行后,在debug日志里,可以看的用例名称被展示出来。

2.base_url 选填

此配置一般在多环境切换中使用,比如你的这套测试用例在qa环境,uat环境都要使用,那么就可以把基础地址(举例http://demo.qa.com),设置进去。在后面的teststep中,只需要填上接口的相对路径就好了(举例 /get)。
这样的话,切换环境运行,只需要修改base_url即可。

3.variables 选填? 变量

config中的变量为公共变量,step中还会有步骤变量。

step变量优先级高于config变量,重名变量优先引用step中变量。

4.verify 选题? 是否验证服务器TLS证书的开关

通常设置为flase,当你发现SSL报错了,可以检查一下是不是verify没传,或者设置了True。

SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1076)'))

5.export? 选填? 导出

导出变量,用于step间参数的传递

  1. 在config中配置export“foo3”这个变量。
  2. 在第一个Step中,.extract() 提取了"body.args.foo2"给变量“foo3”。
  3. 在第二个Step中,引用变量"foo3"。

1.4、teststeps下的属性设置

1.RunRequest(name)

  RunRequest的参数名用于指定teststep名称,它将显示在执行日志和测试报告中。

2. .with_variables

  用于存放变量,但是这里的是Step步骤里的变量,不同的Step的变量是相互独立的。所以对于多个Step都要使用的变量,我们可以放到config的变量里去。

  另外,如果config和Step里有重名的变量,那么当你引用这个变量的时候,Step变量会覆盖config变量。

3. .method(url)

  这里就是指定请求API的方法了,常用的get、post等等。如图所示,就是用的get方法,括号里的url就是要请求的地址了。

  这里要注意的是,如果在config里设置了基础url,那么步骤里的url就只能设置相对路径了。

4. .with_params

  这个就简单了,测接口不都得要传参么,对于params类型的传参,就放这就行了,key-value键值对的形式。对于body形式的传参,看后面。

5. .with_headers

  同样,有header要带上的就放这里。

6. .with_cookies

  需要带cookie的,可以用.with_cookies方法。

7. .with_data

  对于body类型的传参,可以用.with_data。

8. .with_json

  如果是json类型的body请求体,可以用.with_json。

9. .extract

  这里就是要做提取操作了,使用.with_jmespath(jmes_path: Text, var_name: Text)。

  这里是采用了JMESPath语言,JMESPath是JSON的查询语言,可以便捷的提取json中你需要的元素。

  第一个参数是你的目标元素的jmespath表达式,第二个元素则是用来存放这个元素的变量,供有需要的引用。

  这里不展开,后面单讲。

10. .validate

  断言,我们测试最终就是要验证接口返回是否符合预期。

  那在httprunner框架中,可以使用assert_XXX(jmes_path: Text, expected_value: Any)来进行提取和验证。

  第一个参数还是jmespath表达式,第二个参数则是预期值。

  assert_XXX这种方式相信用过自动化测试框架的都不会陌生,所以也非常容易上手。目前httprunner还是封装了非常丰富的断言方法的,相信可以满足绝大多数的需求了。

  1. equals: 是否相等
  2. less_than: 小于
  3. less_than_or_equals: 小于等于
  4. greater_than: 大于
  5. greater_than_or_equals: 大于等于
  6. not_equals: 不等于
  7. string_equals: 字符串相等
  8. length_equals: 长度相等
  9. length_greater_than: 长度大于
  10. length_greater_than_or_equals: 长度大于等于
  11. length_less_than: 长度小于
  12. length_less_than_or_equals: 长度小于等于
  13. contains: 预期结果是否被包含在实际结果中
  14. contained_by: 实际结果是否被包含在预期结果中
  15. type_match: 类型是否匹配
  16. regex_match: 正则表达式是否匹配
  17. startswith: 字符串是否以什么开头
  18. endswith: 字符串是否以什么结尾
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 12:21:43  更:2021-08-19 12:22:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:23:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码