接口测试 HttpRunner v3.x 中文文档

在路上 · 2021年01月08日 · 最后由 404铁头娃 回复于 2021年06月30日 · 19391 次阅读
本帖已被设为精华帖!

背景

最近在公司内部需要做接口相关的工具,所以计划使用比较流行的 httprunner。
但是发现HttpRunner v3.x 的官方文档是英文文档,对于中文不好的我来说,看着有点费劲。
所以用了两天时间把文档翻译了一下,肯定有翻译错误和误区,烦请大家轻拍,也可以在 Issue 中直接提 BUG 或 PR。

见:HttpRunner V3.x 中文文档

httprunner v3.x 使用者交流群

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 24 条回复 时间 点赞

牛了个逼

HttpRunner V3.x 中文文档 超链接无效

IAmTester #2 回复

我这边没问题,Wi-Fi、4G 都没问题。https://www.ontheway.cool/HttpRunner3DocsForCN/

这也太酷了!

在路上大佬要维护 httprunner 吗?大好事啊,支持

别闹,我水平不够

在路上 #6 回复

我现在不得不想别的办法,因为 httprunner 如果不二次开发,修改 $ 的用法,就做不了 GraphQL 这种形式的接口测试😂 而公司产品恰恰很多用的是这种接口形式

😂。我还没遇到,是 $ 关键字冲突吗?可以详细说说一起想想办法

恒温 将本帖设为了精华贴 01月10日 15:07
在路上 #8 回复

是的,GraphQL 里的请求参数里会用 $+ 变量名这种方式声明入参的数据结构,恰好和 httprunner 的参数化规则冲突了,比如说一个参数:username,在正常的 restful 接口里就是 username:tester1 这种键值对的形式,但是 GraphQL 这种接口里可能就是 $username string:tester1, 这样的话 httprunner 就会认为这个键值对里的 Key 是一个变量,进而报找不到参数的错误。这是框架本身的规则限制,我不知道怎么改这个。还有一个场景是我朋友碰到的:.extract() 里的 withjmspath,假如说数据结构是 data.list[0].username,这个 list[0] 是不能用自定义变量来代替的,比如说我想通过上一个接口的返回参数获取了这个 list 的 index 值,设为 s,但是我在这个 case 里,是不能通过 data.list[s].username 来解析出对应的数据的。这个我也不知道咋处理😂 大佬如果遇到了可以想想办法

这种可以看看源码,其实主要是关键字问题,找个关键字替换了就成

在路上 #11 回复

$ 这个关键字用的地方太多了,我也不知道换什么

回头我看看,能不能替换成 ${}这样更通用的参数变量格式

httprunner 2 里面看是通过正则表达式来进行匹配的, 你可以找到那个正则表达式, 改一下就 OK 了

Httprunner 是没人维护了吗?

matt gong #15 回复

应该有吧

增加了 httprunner v2.x 中的基础概念部分,并做了 v3.x 的适配

httprunner3.0 还是没支持 swagger2case 么,之前看有建了这个项目,但一直没有开始,如果目前还没有,如何通过 swagger 直接生成 httprunner 支持的 json

van #18 回复

应该还没,没看到 httprunner 作者关于这块的更新

在路上 #19 回复

嗯,确实没有,那如何通过 swagger 直接生成 httprunner 支持的 json,有这块相关的解决方案么

@zailushang 问下,在接口请求中 ,需要加入变量,应该怎么处理,求解答,谢谢。我用下面的方法貌似无法取到。
teststeps = [
Step(
RunRequest("session")
.get("/api/$session)

Griffin #21 回复

按照如下方式可以拿到

获取到变量的 URL 如下:

仅楼主可见
仅楼主可见

你好,想问一下;我想要断言接口的响应时间,现在是通过在 debugtalk.py 里面一个方法返回的值;能直接像 status_code 这样直接断言么?

# testcase.py

.validate()
.assert_equal("status_code", 200)
.assert_less_or_equals("${get_elapsed($response)}", 5)


# debugtalk.py

def get_elapsed(response):
    return response.elapsed.seconds
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册