![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
httprunne2.x
文章平均质量分 71
上海-悠悠
上海-悠悠 专注python自动化测试
展开
-
httprunner 2.x学习20 - env环境变量有#注释和空行处理
httprunner用.env 文件管理环境变量,但是必须是严格是key=value格式,如果加# 注释就会用例解析失败。原创 2022-10-29 19:55:42 · 868 阅读 · 0 评论 -
httprunner 2.x学习20 - HttpRunner().run()连续执行2个不同项目,只会解析到第一个项目的debugtalk.py
前言调用HttpRunner().run() 连续执行2个不同的项目时,只会解析到第一个项目的debugtalk.py。问题描述下版本信息:操作系统类型: windowsPython 版本 3.6.8HttpRunner 版本 2.5.7问题描述比如我有 test 和 xxx两个项目,每个项目分别有不同的debugtalk.py文件内容xxx项目debugtalk.pydef user(): return "test5" def get_userx(): re原创 2022-04-12 17:02:10 · 927 阅读 · 0 评论 -
httprunner 2.x学习19 - 参数化显示不同的用例标题$title
前言httprunner 2.x版本在参数化的时候,希望每个用例显示不同的标题,方便查看报告参数化标题引用变量先写一个demo.ymlconfig: name: demo case base_url: http://192.168.1.0:8000 variables: msg: 成功success!teststeps:- name: step1-demo request: url: /api/test/demo原创 2021-11-23 09:25:17 · 228 阅读 · 0 评论 -
httprunner 2.x学习18 - 报告validate显示LazyString($msg)问题解决
前言使用 httprunner 2.x版本,validate校验的时候引用变量,在测试报告会显示LazyString($msg)。问题描述httprunner 版本是2.5.7demo.yml文件用例先定义变量,在validate引用变量config: name: demo case base_url: http://192.168.1.0:8000 variables: msg: 成功success!teststeps:- name: demo原创 2021-11-23 09:24:47 · 486 阅读 · 0 评论 -
httprunner 2.x学习17 - summary结果统计和 html 报告生成
前言调用HttpRunner类的run方法运行用例后,会返回测试结果统计。得到测试结果后加载html测试报告模板,最终得到一个html测试报告。summary结果统计接着上一篇调用HttpRunner类执行用例https://www.cnblogs.com/yoyoketang/p/15210874.htmlfrom httprunner.api import HttpRunnerimport json# 作者-上海悠悠 QQ交流群:717225969# blog地址 https://www原创 2021-08-31 20:32:51 · 297 阅读 · 0 评论 -
httprunner 2.x学习16 - 调用HttpRunner类执行用例
前言httprunner 2.x版本底层用的是 unittest 框架运行的用例,执行用例的时候除了可以在命令行输入hrun运行用例,也可以调用HttpRunner类执行用例。HttpRunner类介绍在api.py找到HttpRunner类class HttpRunner(object): """ Developer Interface: Main Interface Usage: from httprunner.api import HttpRu原创 2021-08-31 19:49:46 · 679 阅读 · 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 · 1537 阅读 · 3 评论 -
httprunner 2.x学习15 - response 返回 html 页面解码
前言requests 发送请求返回的 html 页面,默认是按 “ISO-8859-1” 编码解码,经常会出现返回的 html 出现乱码的情况。httprunner 3.x可以在debugtalk.py 写个hook函数解码返回的html内容response 解码requests 直接请求页面,返回的html里面有乱码import requestsurl = "https://home.cnblogs.com/u/yoyoketang/"r = requests.get(url)print原创 2021-06-25 09:08:21 · 763 阅读 · 0 评论 -
httprunner 2.x学习14-jsonpath提取(解决:ResponseObject does not have attribute: parsed_body)
前言httprunner 2.x 版本是可以支持 jsonpath 提取器,但有个小bug一直未得到解决,会出现报错:ResponseObject does not have attribute: parsed_body遇到问题使用jsonpath提取器,提取返回结果,校验结果的时候,部分代码示例如下 validate: - eq: [status_code, 200] - eq: [headers.Content-Type, application/json]原创 2021-06-15 16:27:57 · 458 阅读 · 0 评论 -
httprunner 2.x学习13-自定义校验器(comparator)
前言当我们需要对返回的结果做较复杂的校验时候,httprunner自带的校验方法无法满足我们的需求,可以自己写校验方法。validator 校验器httprunner 校验返回结果有2种格式{“comparator_name”: [check_item, expect_value]}{“check”: check_item, “comparator”: comparator_name, “expect”: expect_value}我们平常用的比较多是是上面这种,直接拿到返回结果,校验与期望原创 2021-05-30 14:35:52 · 421 阅读 · 3 评论 -
httprunner 2.x学习12-在testcase中传递变量(output)
前言httprunner 2.x 的版本,testcase 可以引用 api, 同样的 testcase 也可以引用另外一个 testcase 文件在2个 testcase 中传递变量可以用到 output 关键字testcase 导入 api测试用例(testcase) 是测试步骤的按顺序组织的,测试步骤也就是对应 api 里面的每个接口场景案例:A接口登录接口文档基本信息访问地址:http://127.0.0.1:8000/api/v1/login/请求类型:POST请求头部:appl原创 2021-05-30 14:34:49 · 430 阅读 · 0 评论 -
httprunner 2.x学习11-命令行参数详解
前言httprunner 2.x 命令行参数讲解命令行参数CLI使用 -h 查看相关命令行参数hrun -h参数名称参数值参数说明-h, --help不带参数查看帮助信息-V, --version不带参数查看版本号–log-levelLOG_LEVEL日志等级,默认 info 级别 如:debug/info/warn/error/critical–log-fileLOG_FILE指定日志文本保存路径–dot-env-pathDOT原创 2021-05-30 14:33:29 · 749 阅读 · 0 评论 -
httprunner 2.x学习10-上传文件(upload关键字使用)
前言requests 库里面上传文件会用到 requests_toolbelt, 可以很方便的解决 multipart/form-data 类型的文件上传相关接口。HttpRunner 集成了 requests_toolbelt,从 2.4.1+ 版本开始可以使用内置 upload 关键字来上传文件相关操作。相关环境:httprunner 2.4.1以上版本requests_toolbeltfiletype使用示例使用 upload 关键字,上传文件(2.4.1以上版本)- test原创 2021-05-28 09:18:12 · 536 阅读 · 0 评论 -
httprunner 2.x学习9-生成测试报告ExtentReport(‘dict object‘ 问题已解决)
前言httprunner 可以自定义生成测试报告的模板,1.x版本里面有个 extent_report_template.html 模块非常美观。但是生成报告的时候会报错:jinja2.exceptions.UndefinedError: ‘dict object’ has no attribute ‘meta_data’环境:httprunner==2.4.3遇到问题httprunner 2.x 版本已经去掉 extent_report_template.html 了,所以在\Lib\site-原创 2021-05-28 09:17:10 · 910 阅读 · 1 评论 -
httprunner 2.x学习8-参数化(引用 debugtalk 函数)
前言httprunner 参数化数据源指定支持三种方式:在 YAML/JSON 中直接指定参数列表:该种方式最为简单易用,适合参数列表比较小的情况通过内置的 parameterize(可简写为P)函数引用 CSV 文件:该种方式需要准备 CSV 数据文件,适合数据量比较大的情况调用 debugtalk.py 中自定义的函数生成参数列表:该种方式最为灵活,可通过自定义 Python 函数实现任意场景的数据驱动机制,当需要动态生成参数列表时也需要选择该种方式环境:httprunner==2.5.7原创 2021-05-28 09:16:05 · 537 阅读 · 2 评论 -
httprunner 2.x学习7-参数化(引用外部csv数据)
前言httprunner 参数化数据源指定支持三种方式:在 YAML/JSON 中直接指定参数列表:该种方式最为简单易用,适合参数列表比较小的情况通过内置的 parameterize(可简写为P)函数引用 CSV 文件:该种方式需要准备 CSV 数据文件,适合数据量比较大的情况调用 debugtalk.py 中自定义的函数生成参数列表:该种方式最为灵活,可通过自定义 Python 函数实现任意场景的数据驱动机制,当需要动态生成参数列表时也需要选择该种方式环境:httprunner==2.5.7原创 2021-05-28 09:15:07 · 244 阅读 · 0 评论 -
httprunner 2.x学习6-参数化与数据驱动
前言从 2.0.0 版本开始,HttpRunner 不再支持在测试用例文件中进行参数化配置;参数化的功能需要在 testsuite 中实现。变更的目的是让测试用例(testcase)的概念更纯粹环境:httprunner==2.5.7参数配置参数化机制需要在测试用例集(testsuite)中实现。如需实现数据驱动机制,需要创建一个 testsuite,在 testsuite 中引用测试用例,并定义参数化配置。测试用例集(testsuite)的格式如下所示:config: name: t原创 2021-05-28 09:14:33 · 252 阅读 · 0 评论 -
httprunner 2.x学习5-测试用例集(testsuite)
前言httprunner 分层主要是分三层:api、testcase、testsuites前面讲分层的时候讲到api单独封装每个接口,testcase可以有多个测试步骤,调用api层的接口是写测试用例,用例的步骤是有序的。testsuites 这一层是测试用例的集合,把测试用例放到一个测试套件去执行,用例执行应该是无序的,有依赖的场景在testcase这一层测试用例里面就已经按步骤写好了。测试用例集(testsuite)当测试用例数量比较多以后,为了方便管理和实现批量运行,通常需要使用测试用例集来原创 2021-05-28 09:12:17 · 755 阅读 · 0 评论 -
httprunner 2.x学习4-测试用例分层
前言httprunner 2.x版本最大的改进就是分层机制了,1.x的版本是线性设计的,每个用例都是独立的。一个用例里面涉及到流程性的,我们测试修改个人信息是否修改成功,在yaml文件里面需写3个步骤:登录-修改个人信息-查询个人信息。这样3个测试步骤,每个测试步骤写的test下。但是下个测试用例,重新写个yaml文件也需要遇到登录的话,这样登录的步骤就会重复去写,所以维护起来不方便。httprunner 2.x版本开始引入分层机制,可以定义公共的方法,在用例里面直接引入步骤,这样登录方法我们只需写原创 2021-05-28 09:11:15 · 335 阅读 · 0 评论 -
httprunner 2.x学习3-variables变量声明与引用
前言在 HttpRunner 中,支持变量声明(variables)和引用($var)的机制。在 config 和 test 中均可以通过 variables 关键字定义变量,然后在测试步骤中可以通过 $ + 变量名称 的方式引用变量。区别在于在 config 中定义的变量为全局的,整个测试用例(testcase)的所有地方均可以引用;在 test 中定义的变量作用域仅局限于当前测试步骤(teststep)环境:httprunner==2.5.7局部变量在登录案例中,账号和密码是写死的,一原创 2021-05-28 09:10:31 · 178 阅读 · 0 评论 -
httprunner 2.x学习2-extract提取token值参数关联(上个接口返回token传给下个接口)
前言如何将上个接口的返回token,传给下个接口当做请求参数?这是最常见的一个问题了。解决这个问题其实很简单,我们只需取出token值,设置为一个中间变量a,下个接口传这个变量a就可以了。那么接下来就是解决两个问题:如何取出token值?如何参数关联?环境: httprunner==2.5.7场景案例我现在有一个登陆接口A,登陆成功后返回一个token值。有一个获取绑定卡号的接口B,但是接口B必须要先登录后传登录的token才能访问A接口登录接口文档基本信息访问地址:http://1原创 2021-05-28 09:10:01 · 453 阅读 · 0 评论 -
httprunner 2.x学习1-环境与登录接口案例
前言由于之前写过一个 httprunner 系列是针对 1.5.8 版本写的教程, httprunner版本更新的还挺快的,最近已经到3.x版本了,看了下改动还是挺大的。但是考虑到目前还是有很多公司的小伙伴在用 2.x 版本,所以这里在之前 1.5.8 基础上快速的更新一遍,重复的内容就直接复制过来的对于直接看2.x 版本的小伙伴 也是可以快速上手的,这样就不用纠结1.x版本和2.x版本的区别了。HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSO原创 2021-05-28 09:08:44 · 416 阅读 · 0 评论