HttpRunner
是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型。简单易用,功能强大,具有丰富的插件化机制和高度的可扩展能力。
HttpRunner 用户调研问卷 持续收集中,我们将基于用户反馈动态调整产品特性和需求优先级。
相比于其它 API 测试工具,HttpRunner 最大的不同在于设计理念。
1w+
VUM,结合分布式负载能力可实现海量发压基于 252 份调研问卷的统计结果,HttpRunner 用户的整体满意度评分 4.3/5
,最喜欢的特性包括:
更多内容详见 HttpRunner 首轮用户调研报告(2022.02)
HttpRunner 二进制命令行工具已上传至阿里云 OSS,在系统终端中执行如下命令可完成安装部署。
$ bash -c "$(curl -ksSL https://httprunner.com/script/install.sh)"
# backup
$ bash -c "$(curl -ksSL https://httprunner.oss-cn-beijing.aliyuncs.com/install.sh)"
安装成功后,你将获得一个 hrp
命令行工具,执行 hrp -h
即可查看到参数帮助说明。
$ hrp -h
██╗ ██╗████████╗████████╗██████╗ ██████╗ ██╗ ██╗███╗ ██╗███╗ ██╗███████╗██████╗
██║ ██║╚══██╔══╝╚══██╔══╝██╔══██╗██╔══██╗██║ ██║████╗ ██║████╗ ██║██╔════╝██╔══██╗
███████║ ██║ ██║ ██████╔╝██████╔╝██║ ██║██╔██╗ ██║██╔██╗ ██║█████╗ ██████╔╝
██╔══██║ ██║ ██║ ██╔═══╝ ██╔══██╗██║ ██║██║╚██╗██║██║╚██╗██║██╔══╝ ██╔══██╗
██║ ██║ ██║ ██║ ██║ ██║ ██║╚██████╔╝██║ ╚████║██║ ╚████║███████╗██║ ██║
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝
HttpRunner is an open source API testing tool that supports HTTP(S)/HTTP2/WebSocket/RPC
network protocols, covering API testing, performance testing and digital experience
monitoring (DEM) test types. Enjoy! ✨ 🚀 ✨
License: Apache-2.0
Website: https://httprunner.com
Github: https://github.com/httprunner/httprunner
Copyright 2021 debugtalk
Usage:
hrp [command]
Available Commands:
boom run load test with boomer
completion generate the autocompletion script for the specified shell
har2case convert HAR to json/yaml testcase files
help Help about any command
pytest run API test with pytest
run run API test with go engine
startproject create a scaffold project
Flags:
-h, --help help for hrp
--log-json set log to json format
-l, --log-level string set log level (default "INFO")
-v, --version version for hrp
Use "hrp [command] --help" for more information about a command.
霍格沃兹测试开发学社是业界领先的测试开发技术高端教育品牌,隶属于测吧(北京)科技有限公司 。学院课程由一线大厂测试经理与资深测试开发专家参与研发,实战驱动。课程涵盖 web/app 自动化测试、接口测试、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移&右移、精准测试、测试平台开发、测试管理等内容,帮助测试工程师实现测试开发技术转型。通过优秀的学社制度(奖学金、内推返学费、行业竞赛等多种方式)来实现学员、学社及用人企业的三方共赢。
HttpRunner is in Sentry Sponsored plan.
关注 HttpRunner 的微信公众号,第一时间获得最新资讯。
如果你期望加入 HttpRunner 核心用户群,请填写用户调研问卷并留下你的联系方式,作者将拉你进群。
完整的用户文档:http://httprunner.readthedocs.io/
新增项目域名:http://httprunner.top/
当前还只是跳转到文档,后续会做一个项目主页出来。
报错啊
@chenling5652 有问题在项目的 GitHub 上提 issue 吧。
给李老师点个赞
产品化,国际化
HttpRunner 开始支持 HAR ,意味着同时支持了一大堆主流工具,包括
Fiddler/Charles/Chrome/Firefox/HttpWatch
等等,以此实现脚本录制和生成功能。https://github.com/HttpRunner/har2case
支持顶一个,har 导入的很实用
有中文版的文档么。。正在学习英文
@shenshen
有中文文档,不过还很不完善;英文文档先凑合着看吧
not just ? more than?
支持下,支持 PB 数据类型吗?
安装失败 提示: error: Microsoft Visual C++ 10.0 is required. Get it with "Microsoft Windows SDK 7.1": www.microsoft.com/download/details.aspx?id=8279
这个是必须要安装 vs2010 吗?
@bingbohe
纯粹的 Python 包,跟 vs2010 没关系。你先确保你本地的 Python 环境正常,以及 pip 工具可用。
@mr_zeng
HttpRunner 是一个面向 HTTP 协议的接口测试工具,与编程语言无关,也没有是否支持某种数据类型之说。
@leo126 感谢指正,貌似我没法编辑内容和描述了。
我换 easy_install 安装成功了 @debugtalk
又重新看了下,除了语言不一样,设计思想真是一模一样啊。。除开性能部分
弱弱问下传参格式只支持 json 吗?
英文文档看起来还较为吃力,期待中文文档,先点个赞
求大佬再给个中文文档,毕竟很多人看英文看的比较吃力
中文文档和案例会有的
中文使用手册来啦:http://cn.httprunner.org/
试用一下,第一个接口调用就提示:UnicodeEncodeError: 'ascii' codec can't encode characters in position 168-169: ordinal not in range(128)
本地 python 环境是 2.7.10
请问支持接口线上监控吗,类似 elk
我也是,接口调用提示:UnicodeEncodeError: 'ascii' codec can't encode characters in position 168-169: ordinal not in range(128)
python 环境是 2.7.5
用例不支持断言中文吗?
@815475897 @linyc 在 Python2 下可能会存在编码的问题,切换到 Python3 后就不会有该问题了。
另外,我本地使用 Python2 无法复现,可否将你们的脚本发给我,方便我调试修复下?
@Ryan.Li 支持中文的,建议使用 Python 3,可以避免编码问题。
@815475897 @linyc Python 2.7 版本下 UnicodeEncodeError 的问题已修复。
请升级到
1.2.3
及之后的版本。@debugtalk 我已经更新到最新的版本了,UnicodeEncodeError 的问题已经好了
但是我现在出现另外一个问题想请教下,我目前 mac 上的本地 python 环境有两套,python2.7 及 python3.6,每次我通过 hrun 运行的时候都会使用 python2 来跑,即使我将默认的 python 环境改成 python3 也不生效,目前我是通过 debug 模式在 run 的时候指定运行环境是 python3,可以在 hrun 的时候指定 python 版本吗
楼主这个做了多久啊,感觉要花好长时间,然后好多的细节
@815475897 不能,你安装 httprunner 的时候就已经是在特定的 Python 版本下了。如果你要在 Python 3.6 下运行 hrun,那你就得在 Python 3.6 下安装。
推荐使用 pyenv 来管理 Python 环境。
@carl 你可以看下 GitHub 中的代码提交记录,挺长时间了。的确是很多细节,只有逐步迭代优化了。
现在 httprunner 有群可以沟通交流吗
如何做 jenkins 持续集成?
楼主能帮我看下是怎么回事吗?
pip install git+https://github.com/HttpRunner/HttpRunner.git#egg=HttpRunner
Collecting HttpRunner from git+https://github.com/HttpRunner/HttpRunner.git#egg=HttpRunner
Cloning https://github.com/HttpRunner/HttpRunner.git to /private/var/folders/gm/10yg5f51571d1jbvvg7vwkyw0000gq/T/pip-build-ms6DrD/HttpRunner
Requirement already satisfied (use --upgrade to upgrade): requests in /Library/Python/2.7/site-packages/requests-2.3.0-py2.7.egg (from HttpRunner)
Collecting PyYAML (from HttpRunner)
Could not fetch URL https://pypi.python.org/simple/pyyaml/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) - skipping
Could not find a version that satisfies the requirement PyYAML (from HttpRunner) (from versions: )
No matching distribution found for PyYAML (from HttpRunner)
我的 python 版本是
Python 2.7.10 (default, Feb 7 2017, 00:08:15)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
@debugtalk 有内部沟通群吗?能否建一个 QQ 群,有问题可以交流
@yuwanghua12 没有建群,因为 QQ/微信群的沟通效率并不高,而且我平时也没有时间看群里的内容。
遇到问题建议先翻下 GitHub 的历史 issues,若没有,那就在上面新开一个 issue 吧。
你刚发那个问题,SSL 证书报错,多半是你本地开启了抓包工具造成的。
本地抓包工具没有开启
@debugtalk $ pip install -r requirements-dev.txt 你的 git 工程里面没有找到这个 requirements-dev.txt 文件啦
pipenv run python -m unittest discover windows 下,进入 git 下来的 Httprunner 根目录后执行这个命令,提示 ERROR:root:500 Server Error: INTERNAL SERVER ERROR for url: http://127.0.0.1:5000/api/users/1000 这个是啥情况啊?
实践发现 mac 下 Python2.7 不支持,升级 Python 到 3.6 可以安装成功
存在一个这样的问题:我 extract 接口 A 的 ID,传入下一个接口 B 的 header 中,但是 ID 是一个 int 值,此时会提示类型的报错,因为 header 中的引用值必须是 string
有问题麻烦在项目中提 issue,我会逐一处理的。
有个问题想请教下,能在执行过程中 sleep 几秒吗
@815475897 可以使用 setup_hooks 或者 teardown_hooks ,在里面进行 sleep 的
git 拉下来源码之后,能否自己修改源码来使用呢?
另外,pip 安装了 httprunner,git 拉下来源码,再 install 源码中的 Setup.py 这步是否多余?发现会再新拉下一个 build 目录
build 目录里面还有有个 lib/httprunner 目录,和最外层的 httprunner 目录内容一样,都是 built_in.py 等内容,所以不知道这个 setup.py 的作用是什么
怎么把上一个接口返回的一个参数,放到下面执行接口的 url 种
@debugtalk 请问下,脚手架分层里面,api、suit、testcases 能备注吗?
suite 的 config 能否支持 parameters
运营测试用例,总是报这个错
ERROR: runTest (httprunner.task.TestCase)
/api/get-token
Traceback (most recent call last):
httprunner.exception.FunctionNotFound: get_sign not found in recursive upward path!
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
httprunner.exception.ParamsError: get_sign is not defined in bind functions!
@debugtalk httprunner,做类似于 qq 空间那种互评的,能不能在一条 testcase 里面实现?我现在思路是:A 登录、发说说,B 登录、回复,全部在一个 testcase 里面,但是感觉好像不大对
求教楼主,我在安装的时候,在这一步,输入命令:pipenv install --dev 后提示:“To activate this project's virtualenv,run pipenv shell”,然后我又输入 pipenv shell,提示:AttributeError:'module' object has no attribute 'run',我该怎么解决这个问题呢?急,在线等!谢谢楼主!!!
好像,ansible 的 playbook ,接口测试行业的剧本吗?
大佬,能像 ansible 搞成 自定义模块 就牛逼了~😄
ERROR: runTest (httprunner.task.TestCase)
/api/get-token
Traceback (most recent call last):
httprunner.exceptions.FunctionNotFound: get_sign not found in recursive upward path!
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
httprunner.exceptions.ParamsError: get_sign is not defined in bind functions!
HttpRunner 的逻辑架构图:https://www.processon.com/view/link/5b263148e4b0c383b07bde17
请教楼主,我用了 httpmanager,在页面上写测试用例的时候如何在请求中带入 cookie 呢@debugtalk
@debugtalk 我在 debugtalk.py 里定义了一个 code 函数,在测试用例中调用的时候说找不到这个函数呢 是不是哪里没写对
Traceback (most recent call last):
FunctionNotFound: code not found in debugtalk.py module!
module mapping: {'variables': {}, 'functions': {}}
中文的域名为啥老是访问不了
python 2.7.3
httprunner 1.5.13
linux
校验中文时,报这个错误:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11: ordinal not in range(128)
@debugtalk
@penghu2 用的是 github pages,不知道是不是偶尔会被墙。
已经上 HTTPS 了, https://cn.httprunner.org
@doudou-china Python 2 维护真的好心累,升级 Python 3 吧,后续 2 应该不再维护了。
python 2.7.15 报错
用 python 脚本运行报错
os.system("hrun C:\Users\ws\Desktop\login.yml")
WARNING Python 2 will retire in 445 days, why not move to Python 3?
ERROR !!!!!!!!!! exception stage: load tests !!!!!!!!!!
RuntimeError: maximum recursion depth exceeded while calling a Python object
直接在 dos 命令行里运行正常,这是什么原因?
@debugtalk
好的,我升级下 Python,多谢您啦
@debugtalk
@debugtalk
api: def: search_house($page, $pagesSize)
sutie: api: search_house(, ) 2 个值都为空 执行用例时实际传入的是 : search_house(‘’, 'sSize')
大佬,有 Windows 的安装教程么?
@debugtalk 现在支持 form-data 吗?
没有可视化界面的么?web 端或者客户端
@debugtalk 更新的 2.0 版本,不再支持引用 api 时可以传参了吗?例:
参数为 api 中的 1 个字段,定义为类型。该接口不同类型有不同用途,写 api 是将其定为变量
@debugtalk 部分同事转换用例报 har2case: error: unrecognized arguments: 1111.yml,这种报错解决方法是啥
@debugtalk 请问 httpRunner 可以支持场景自动化测试么?可以将上个接口的返回值放在上下文中,供下一个接口使用么
遇到请求被重定向的情况,我初始请求中的 cookie 不会被完全带着请求被定向的 url,这样重定向之后访问就会失败,这种情况要怎么解决呢。@degubtalk求老师指教
@debugtalk 你好,在测试接口需要 ssl 证书验证,怎么能跳过这个验证呢?
有个小问题不知道有人遇到过没:
测试登录的时候,该地址登录成功后,重定向至主页,抓包 status code 是 302,但是转化为测试用例后,测试断言时该登录 status code 返回 200,并不是 302
INFO Loading environment variables from D:\Document\salary_caiting.env
ERROR !!!!!!!!!! exception stage: parse tests !!!!!!!!!!
httprunner.exceptions.VariableNotFound: base_url
请问这个怎么解决啊?@debugtalk
ERROR !!!!!!!!!! exception stage: load tests !!!!!!!!!!
AttributeError: module 'yaml' has no attribute 'FullLoader'
@debug
楼主看下啊
@xixixueling 已经修复了,升级到 2.2.3 即可。或者将 PyYAML 升级到 5.1 也行。
@debugtalk @xiaofeng 支持 form-data 吗?
python 3.6.5
httprunner 2.2.3
windows
用例中的参数值是中文时报编码错误,请问谁知道什么原因?谢谢!
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 361-363:
Body ('用户名') is not valid Latin-1. Use body.encode('utf-8') if you want to s
end it encoded in UTF-8.
看错误好像 request 的参数编码不对,框架对参数没有进行编码处理还是什么原因呢?
使用后感觉......python 版的 jmeter?
@debugtalk 大神,请问下如果我用 httprunner 测试接口的时候,post 请求参数里头有 file 参数(比如上传一个图片),这个 yaml 文件该怎么写呢?我抓包看了下,然后把 har——》yml 了,看到 yml 文件里对应的 data 的数据里头好像把图片解析出来了,这种情况怎么去写 yml 用例呢?
httprunner.exceptions.VariableNotFound: UserName
报错:httprunner.exceptions.VariableNotFound: UserName
config:
name: testcase description
parameters:
- UserName-Password:Sequential
variables: {}
teststeps:
怎么实现需要判断、循环的业务流程呢,初步了解,感觉 debugtalk.py 里的方法只能作为参数应用于用例内部,那么怎么组织用例的执行逻辑呢
1234
求助!
INFO HttpRunner version: 2.2.5
WARNING Invalid test file format: C:\Users\Administrator\Desktop\新建文件夹.\sexualAndAge.yml
!!!!!!!!!! exception stage: load tests !!!!!!!!!!
Traceback (most recent call last):
File "d:\python\lib\runpy.py", line 193, in run_module_as_main
"main", mod_spec)
File "d:\python\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "D:\python\Scripts\hrun.exe__main_.py", line 9, in
File "d:\python\lib\site-packages\httprunner\cli.py", line 85, in main_hrun
runner.run(path, dot_env_path=args.dot_env_path)
File "d:\python\lib\site-packages\httprunner\api.py", line 276, in run
return self.run_path(path_or_tests, dot_env_path, mapping)
File "d:\python\lib\site-packages\httprunner\api.py", line 258, in run_path
tests_mapping = loader.load_tests(path, dot_env_path)
File "d:\python\lib\site-packages\httprunner\loader.py", line 899, in load_tests
__load_file_content(path)
File "d:\python\lib\site-packages\httprunner\loader.py", line 884, in __load_file_content
if not loaded_content:
UnboundLocalError: local variable 'loaded_content' referenced before assignment
文件在 testcase 目录下,不知道为什么运行的时候报错,请前辈指点
请问,httprunner 在进行性能测试时,可以进行 locusts 的参数化吗,源码里的模板是直接定义,如果要进行 locusts 的参数化时需要在模板里修改吗
@debugtalk 大神,求助,httprunner 在进行性能测试时,可以进行 locusts 的参数化吗,源码里的模板是直接定义,如果要进行 locusts 的参数化时需要在模板里修改吗
大佬,引用接口文档总是提示找不到,请赐教呢
HELLO,如果有个字段的值例如:preset_parameters:"{"$app_version"}" ,$app_version 其实一个字符串并没有引用变量。该怎么针对这个字段忽略引用变量的机制
$app_version 是后台接口字段必传的字符串值
最新版本 3.0.1.2 有个 bug,api 文件中 varialbe 变量解析报错
楼主,为什么我用 debugtalk.py 文件中写的方法,通过 ${getcookie()} 这样子的方式根本取不到值啊,放在同一个目录下。
INFO HttpRunner version: 2.5.7
!!!!!!!!!! exception stage: load tests !!!!!!!!!!
list index out of range
没有放同一个目录下报这个错:
FO HttpRunner version: 2.5.7
ERROR failed to parse testcase: erp.yml, error: getcookie is not found.
WARNING parse failures occurred ...
dump file: D:\project\erp_api\api\logs\erp.parse_failed.json
ERROR failed to parse all cases, abort.
!!!!!!!!!! exception stage: parse tests !!!!!!!!!!
@debugtalk 求解答。
最新版本 不是用 pipenv?
@lsq4590578 你的问题解决了 ? 我也碰到了相同的问题
@lsq4590578 你的问题解决了 ? 我的是 HttpRunner version: 3.0.1,不知道哪里出问题了,不能使用 debugtalk.py 文件中写的方法
@aibreze 我知道为什么了,我也遇到了,刚刚解决
先定义,后使用
@wenjxu 亲,我也遇到这个问题了,请问你怎么解决的?
@debugerliu 您好,请问你说的先定义后使用具体是指什么,我也遇到一样的问题,望回复
得先在顶部定义出来,下面才能使用,不能直接就在下面使用
@zhouhuiyin 你是在那一层使用的,API 层,还是 testcases 层,在 testcases 层使用是正常的
https://cn.httprunner.org/挂了,麻烦修复下
更改地址了:https://docs.httprunner.org/
locust 启不来。。。打了一行东西就没了
F:\测试开发\demo\testcases>locusts -f 123.yml
[2020-06-01 14:50:49,687] DESKTOP-LHF0SEM/INFO/locust.main: Starting web monitor at *:8089
F:\测试开发\demo\testcases>
httprunner3.0.11
哪位能告诉下为什么我执行成功后只有 log 没有 Html 那个炫酷的页面文件啊,reports 里什么也没有
老板,文档网站都打不开了
https://docs.httprunner.org/打不开
3.0 不兼容 2.0 的用例嘛 然后 3.0 的报告是抛弃了 2.0 的那个报告嘛
这是什么报错,求大神指教
Traceback (most recent call last):
File "/Users/bianwancheng/PycharmProjects/untitled/httprun3/testcase/h3_test.py", line 55, in
TestCaseRequestWithTestcaseReference().test_start()
File "/usr/local/lib/python3.8/site-packages/httprunner/runner.py", line 455, in test_start
return self.run_testcase(
File "/usr/local/lib/python3.8/site-packages/httprunner/runner.py", line 358, in run_testcase
extract_mapping = self.run_step(step)
File "/usr/local/lib/python3.8/site-packages/httprunner/runner.py", line 297, in __run_step
step_data = self.run_step_testcase(step)
File "/usr/local/lib/python3.8/site-packages/httprunner/runner.py", line 246, in __run_step_testcase
testcase_cls()
File "/usr/local/lib/python3.8/site-packages/httprunner/runner.py", line 384, in run
return self.run_testcase(testcase_obj)
File "/usr/local/lib/python3.8/site-packages/httprunner/runner.py", line 351, in run_testcase
step.variables = parse_variables_mapping(
File "/usr/local/lib/python3.8/site-packages/httprunner/parser.py", line 457, in parse_variables_mapping
parsed_value = parse_data(
File "/usr/local/lib/python3.8/site-packages/httprunner/parser.py", line 404, in parse_data
return parse_string(raw_data, variables_mapping, functions_mapping)
File "/usr/local/lib/python3.8/site-packages/httprunner/parser.py", line 329, in parse_string
func = get_mapping_function(func_name, functions_mapping)
File "/usr/local/lib/python3.8/site-packages/httprunner/parser.py", line 280, in get_mapping_function
raise exceptions.FunctionNotFound(f"{function_name} is not found.")
httprunner.exceptions.FunctionNotFound: sum_two is not found.
想咨询下 httprunner 哪个版本支持基于 httprunner,解析 postman,生成用例集
只有我一个人感觉 3X 比 2.X 难用吗,而且 3.X 还不向下兼容 2.X 的用例。。。
@debugtalk 我是杭州天谷信息科技有限公司的测试,我们公司是 httprunner 的深度用户。因为我看到 httprunner 针对.har 文件有 har2case 库,因为我们公司的接口文档格式都是 swagger 的,所以我近期做了针对 swaager 接口文档直接生成 httprunner 的 case。swagger2case,主要实现的功能:
功能 1: 全量 API 自动生成,将所有的 swagger 接口全量生成标准形式。
功能 2:增量 API 新增,将增量的 API 自动生成
功能 3:增量 TAG 新增,将所有的 TAG 下的接口自动生成
功能 4:全量 API,自动生成必填项场景 testcase
功能 5:增量 API 新增,将增量的 API 自动生成必填项场景 testcase
功能 6:增量 TAG 新增,将所有的 TAG 下的接口自动生成必填项场景 testcase
功能 7:将 tag 下的 testcase 自动生成 testsuite
因为我查找了很多相关的资料,也是看到你们公司说做 swagger2case 和 postman2case,但是目前为止在 python 的三方库都没有看到,所以这边也是想把我做的 swagger2case 开源出来,这边来咨询下你们官方是否已经实现了,没有我这边可以开源出来呢
https://api.postalpincode.in/pincode/110001
https://api.postalpincode.in/pincode/110001这个接口怎么在框架里报错勒
self =
param = None
def test_start(self, param: Dict = None) -> "HttpRunner":
"""main entrance, discovered by pytest"""
self.init_tests()
self.project_meta = self.project_meta or load_project_meta(
self.config.path
)
self.case_id = self.case_id or str(uuid.uuid4())
self.log_path = self.log_path or os.path.join(
self.project_meta.RootDir, "logs", f"{self.case_id}.run.log"
)
log_handler = logger.add(self.log_path, level="DEBUG")
# parse config name
config_variables = self.config.variables
if param:
config_variables.update(param)
config_variables.update(self.session_variables)
self.config.name = parse_data(
self.config.name, config_variables, self.__project_meta.functions
)
if USE_ALLURE:
# update allure report meta
allure.dynamic.title(self.config.name)
allure.dynamic.description(f"TestCase ID: {self.case_id}")
logger.info(
f"Start to run testcase: {self.config.name}, TestCase ID: {self.case_id}"
)
try:
/usr/local/lib/python3.8/site-packages/httprunner/runner.py:455:
/usr/local/lib/python3.8/site-packages/httprunner/runner.py:359: in run_testcase
extract_mapping = self.run_step(step)
/usr/local/lib/python3.8/site-packages/httprunner/runner.py:295: in __run_step
step_data = self.run_step_request(step)
/usr/local/lib/python3.8/site-packages/httprunner/runner.py:166: in run_step_request
resp = self.session.request(method, url, **parsed_request_dict)
/usr/local/lib/python3.8/site-packages/httprunner/client.py:208: in request
self.data.req_resps = [
/usr/local/lib/python3.8/site-packages/httprunner/client.py:209: in
get_req_resp_record(resp_obj) for resp_obj in response_list
/usr/local/lib/python3.8/site-packages/httprunner/client.py:93: in get_req_resp_record
response_data = ResponseData(
pydantic/main.py:346: ValidationError
Assertion failed
Assertion failed
@weiluting 我们也准备做个类似的东西,能不能聊聊
响应值是数组 [{"123":"123"}] 的格式就报错了,问下怎么解决前辈
请问有学习 httprunner 交流群吗?可以互相请教问题那种。
请问 2.0 的用例,升级到 3.0 可以直接转换吗
httprunner3.X 支持数据库断言么?
@grtmgogo jmespath 中如果 key 是一个数字,key 必须单独使用双引号包围
dict_1 = {"0": {"a":1, "b":2}, "other": {"c": 3, "d": 4}}
path1 = jmespath.search("\"0\".a", dict_1)
测试报告中 句柄无效怎么解决
中文文档?
httprunner 能连接 redis 数据库吗 ?大佬
hrun -V 报错,httprunner 版本 3.1.6
用户文档更新:https://httprunner.com/docs/
A.yml
config:
name: "request methods testcase: reference testcase"
base_url: "https://postman-echo.com"
verify: False
teststeps:
name: request with functions
variables:
foo1: 111
testcase: testcases/demo_testcase_request.yml
B.yml
config:
name: "request methods testcase with functions"
base_url: "https://postman-echo.com"
verify: False
teststeps:
name: get with params
request:
method: GET
url: /get
params:
foo1: $foo1
headers:
User-Agent: HttpRunner/${get_httprunner_version()}
validate:
- eq: ["status_code", 200]
B.yml 仅做数据参数配置,数据从 A.yml 中去设置
4.0.0 是不是不支持这么写??
有同学实现测试数据剥离的吗,比如单独创建 yml 文件用于存放测试数据,在 debugtalk 中实现方法去读取 yml 文件中的测试数据,以实现测试用例中调用测试数据定义尔不直接使用测试数据。 达到几个目标:
Q:Mac M1 安装遇到的问题如下
✔ Installing...
$ chmod +x hrp && mv hrp /usr/local/bin/
mv: rename hrp to /usr/local/bin/hrp: Permission denied
提示 Permission denied
A:解决方法:使用 sudo chmod -R 777 ...
执行如下命令
sudo chmod -R 777 /usr/local/bin/
Password:
完美解决~~~~
新版 4.3.6 版本,运行脚本,报错 [ERROR] fungo: exec command failed: error="exit status 1" stderr=""
hrp exit 1,请问是什么原因呢
支持文件测试吗?比如 https 接口,数据准备包含文件内容替换、sftp 操作等
debugtalk 似乎无法通过 from ... import 引用自定义的函数了,版本 httprunner==4.3.6
debugtalk 里引用自定义.py 的函数,该函数如果再引用函数,这样 debugtalk rpc 报错了,不知道为什么 1.5.8 版本的就可以,报错的版本是 4.3.5