
httprunner3.x
文章平均质量分 67
上海-悠悠
上海-悠悠 专注python自动化测试
展开
-
httprunner 3.x学习20 - jmespath取值特殊字符问题解决
前言jmespath在取值的时候,遇到一些特殊的字符处理起来会比较麻烦。httprunner3.x提取和校验结果都是用jmespath取值,本篇总结几个常见的问题使用案例访问/api/test/demo接口,接口返回如下# 作者-上海悠悠 QQ交流群:717225969# blog地址 https://www.cnblogs.com/yoyoketang/{ "code":0, "msg":"成功success!", "data":[ {原创 2021-08-29 08:58:52 · 1036 阅读 · 2 评论 -
httprunner 3.x学习19 - 从返回头部headers取值Content-Type (报错已解决:Bad jmespath expression: Unknown token ‘-‘)
前言httprunner 3.x 取值是用 jmespath 表达式,当从头部取值Content-Type时,有特殊字符 -,会报错jmespath.exceptions.LexerError: Bad jmespath expression: Unknown token ‘-’: headers.Content-Type使用示例从返回的headers提取Content-Type内容from httprunner import HttpRunner, Config, Step, RunReques原创 2021-08-19 09:10:37 · 658 阅读 · 0 评论 -
HttpRunner2.X 版本和 3.X 版本的区别到底有哪些?(吐血总结!)
前言HttpRunner 的版本截止到目前已经更新到3.1.5了,那么很多初学者都有这样的疑问:HttpRunner2.X 版本和 3.X 版本的区别到底有哪些?到底要不要学2.X 版本,还是直接入手3.X 版本呢?设计理念上的差异HttpRunner 每一次大版本的更新,都会有设计理念上的大的改变,可以从官方文档上了解到.HttpRunner 2.XHttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、原创 2021-07-14 15:27:16 · 1717 阅读 · 3 评论 -
httprunner 3.x学习18 - validate 断言总结
前言httprunner 3.x使用 validate 方法断言comparator 校验方式validate 可以支持的校验方式comparator缩写功能equal“eq”, “equals”, “equal”相等less_than“lt”, “less_than”小于less_or_equals“le”, “less_or_equals”小于或等于greater_than“gt”, “greater_than”大于greater_o原创 2021-06-25 09:09:22 · 1326 阅读 · 0 评论 -
httprunner 3.x学习17 - 断言字符串包含
前言校验接口返回结果,我们习惯校验实际结果和期望结果相等,如果只是部分相等可以用contains包含校验校验包含先看下httprunner/builtin/comparators.py 关于 contains 和 contained_by 函数定义check_value 是需要校验的返回结果expect_value 是期望结果,可以是这几种类型:list, tuple, dict, basestringdef contains(check_value: Any, expect_value:原创 2021-06-25 09:08:51 · 1236 阅读 · 0 评论 -
httprunner 3.x学习16 - 断言使用正则匹配(assert_regex_match)
前言httprunner 3.x可以支持正则匹配断言,使用assert_regex_match方法assert_regex_matchassert_regex_match 源码如下 def assert_regex_match( self, jmes_path: Text, expected_value: Text, message: Text = "" ) -> "StepRequestValidation": self.__step_conte原创 2021-06-24 07:50:54 · 1080 阅读 · 0 评论 -
httprunner 3.x学习15 - allure报告环境
前言httprunner 3.x版本是基于 pytest 的,pytest 当然是可以支持 allure 报告了windows环境版本:python 3.6版本pytest 5.4.3版本allure-pytest 2.8.6 最新版allure 命令行 2.13.0 版本allure-pytest 环境准备使用 pip 安装 allure-pytest, 加上–index-url 国内下载源,下载会快一些pip install allure-pytest==2.8.6 --index原创 2021-06-23 09:51:22 · 419 阅读 · 0 评论 -
httprunner 3.x学习14 - 上传文件(upload)
前言requests 库里面上传文件会用到 requests_toolbelt, 可以很方便的解决 multipart/form-data 类型的文件上传相关接口。HttpRunner3.x 集成了 requests_toolbelt,可以使用内置 upload 关键字来上传文件相关操作。相关环境:httprunner 3.1.4requests_toolbeltfiletype使用示例使用 upload 关键字,上传文件(2.4.1以上版本)teststeps:- na原创 2021-06-22 10:26:31 · 925 阅读 · 0 评论 -
httprunner 3.x学习13 - hook 机制
前言httprunner 3.x可以支持hook机制,在发送请求前做一些预处理或在请求完成后后置处理setup_hook :主要用于处理接口的前置的准备工作,也可以对请求 request 参数签名加密等操作teardown_hook:主要用于后置清理工作,也可以对返回 respone 解密等操作测试步骤添加hook# debugtalk.py# 作者-上海悠悠 QQ交流群:717225969# blog地址 https://www.cnblogs.com/yoyoketang/def原创 2021-06-22 10:26:00 · 857 阅读 · 0 评论 -
httprunner 3.x学习12 - 参数化(parameters)引用 debugtalk 函数
前言httprunner 参数化数据源指定支持三种方式:在 YAML/JSON/py 中直接指定参数列表:该种方式最为简单易用,适合参数列表比较小的情况通过内置的 parameterize(可简写为P)函数引用 CSV 文件:该种方式需要准备 CSV 数据文件,适合数据量比较大的情况调用 debugtalk.py 中自定义的函数生成参数列表:该种方式最为灵活,可通过自定义 Python 函数实现任意场景的数据驱动机制,当需要动态生成参数列表时也需要选择该种方式本篇讲解调用 debugtalk.原创 2021-06-22 10:25:29 · 682 阅读 · 0 评论 -
httprunner 3.x学习11 - 参数化(parameters)引用外部 csv 数据文件
前言httprunner 3.x参数化(parameters)数据源支持三种方式:在 YAML/JSON/py 中直接指定参数列表:该种方式最为简单易用,适合参数列表比较小的情况通过内置的 parameterize(可简写为P)函数引用 CSV 文件:该种方式需要准备 CSV 数据文件,适合数据量比较大的情况调用 debugtalk.py 中自定义的函数生成参数列表:该种方式最为灵活,可通过自定义 Python 函数实现任意场景的数据驱动机制,当需要动态生成参数列表时也需要选择该种方式本篇讲解内原创 2021-06-22 10:24:58 · 1031 阅读 · 0 评论 -
httprunner 3.x学习10 - parameters 参数化
前言httprunner 3.x可以在yaml文件中参数化,在 config 中使用 parameters 关键字环境:httprunner==3.1.4参数配置参数名称的定义分为两种情况:独立参数单独进行定义;多个参数具有关联性的参数需要将其定义在一起,采用短横线(-)进行连接。数据源指定支持三种方式:在 YAML/JSON/py 中直接指定参数列表:该种方式最为简单易用,适合参数列表比较小的情况通过内置的 parameterize(可简写为P)函数引用 CSV 文件:该种方式需要原创 2021-06-22 10:24:28 · 1186 阅读 · 1 评论 -
httprunner 3.x学习9 - .env环境变量设置
前言一般来说,在进行实际应用的开发过程中,应用会拥有不同的运行环境,通常会有以下环境:本地开发环境测试环境生产环境在不同环境中,我们可能会使用不同的数据库或邮件发送等配置,这时候则需要通过 .env 文件来针对不同的运行环境作不同的设置。环境变量在自动化测试中,有时需要借助环境变量实现某些特定的目的,常见的场景包括:切换测试环境切换测试配置存储敏感数据(从信息安全的角度出发)Windows 系统中使用 set 命令设置环境变量和值,接下来设置以下变量base_url = h原创 2021-06-21 08:56:58 · 651 阅读 · 1 评论 -
httprunner 3.x学习8 - variables变量声明与引用
前言在 HttpRunner 中,支持变量声明(variables)和引用(var)的机制。在config和step中均可以通过variables关键字定义变量,然后在测试步骤中可以通过‘var)的机制。在 config 和 step 中均可以通过 variables 关键字定义变量,然后在测试步骤中可以通过 `var)的机制。在config和step中均可以通过variables关键字定义变量,然后在测试步骤中可以通过‘变量名称` 的方式引用变量。区别在于在 config 中定义的变量为全局的,原创 2021-06-21 08:56:27 · 590 阅读 · 1 评论 -
httprunner 3.x学习7 - 变量优先级
前言httprunner 3.x里面变量可以分为这几种:step变量,config变量,extract变量,export变量variables变量优先级httprunner 3.x里面变量:step(参数变量) 在step 步骤中设置的variables,也就是局部变量,在当前step中生效config(配置变量) 在config配置中设置的variables,也就是全局变量,在当前整个文件中都生效extract(提取变量) 提取返回结果的变量export(导出变量) export 导原创 2021-06-21 08:55:59 · 448 阅读 · 0 评论 -
httprunner 3.x学习6 - 生成 html 测试报告
前言HttpRunner 3.x版可以使用所有的 pytest 插件,包括测试报告插件,像的 pytest-html 和 allure-pytest 。pytest-htmlhttprunner 安装的时候,会自动安装 pytest 和 pytest-html 插件,对应的版本号是pytest 5.4.3pytest-html 2.1.1C:\Users\dell>pip show pytestName: pytestVersion: 5.4.3C:\Users\dell>原创 2021-06-21 08:54:25 · 911 阅读 · 0 评论 -
httprunner 3.x学习5 - 测试用例引用前面一个用例(call)
前言当我写了一个登录的接口用例后,后面会继续写查询个人信息的接口,但是查询个人信息接口是依赖于先登录(获取token)。像这种业务上操作有先后关系的情况,可以把登录当一个step来引用。httprunner3.x 框架弱化了API层的概念,直接写testcase了,如果是单个接口的用例,可以当step去引用。场景案例我现在有一个登陆接口A,登陆成功后返回一个token值。有一个获取绑定卡号的接口B,但是接口B必须要先登录后传登录的token才能访问A接口登录接口文档基本信息访问地址:http原创 2021-06-21 08:53:54 · 942 阅读 · 1 评论 -
httprunner 3.x学习3 - jmespath 提取返回结果(extract, validate)
前言httprunner 3.x支持 jmespath 提取器提取返回的结果内容,可以在 extract 提取变量的时候使用,也可以在 validate 校验结果的时候使用。extract 提取变量with_jmespath(jmes_path:文字,var_name:文字)mes_path:jmespath表达式,有关更多详细信息,请参考JMESPath教程https://jmespath.org/tutorial.htmlvar_name:存储提取值的变量名,可以在后续测试步骤中引用它如原创 2021-06-16 08:21:26 · 2491 阅读 · 1 评论 -
httprunner 3.x学习2 - 测试用例结构(testcase)
前言httprunner 3.x 支持3种格式的用例:YAML/JSON/pytest 代码,3.x版本主推的是pytest测试用例。测试用例结构httprunner 3.x 版本弱化了api层的概念,直接在 testcase 中写request 请求,如果是单个请求,也可以直接写成一个 testcase 。每个 testcase 必须具有两个类属性:config 和 teststeps。每个测试用例都应该有一个config部分,您可以在其中配置测试用例级别的设置,有以下属性属性名称是原创 2021-06-16 08:20:52 · 1050 阅读 · 0 评论 -
httprunner 3.x学习1 - 环境安装与准备
前言httprunner 3.x最大的改变是执行用例用的是 python 的 pytest 框架,支持3种格式的用例:YAML/JSON/pytest 代码对比 httprunner 2.x 以前版本,早期版本用的是 unittest 框架,只支持2种格式的用例: YAML/JSON简介HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。主要特征继承的所有强大功能req原创 2021-06-16 08:20:16 · 1177 阅读 · 0 评论