基于 python 的 HTTP 测试框架求助

2016-07-26 22:59:09 +08:00
 ecloud
服务器为 HTTP ,非 web
想用 python 完成集成测试和压力 /性能测试(通过调服务器的各种 HTTP 接口)
有没有现成的框架直接拿来用?不是指 HTTP 框架,而是测试框架。很容易配置测试用例,数据驱动,模拟多客户请求,并发,定时,定量,结果统计等
3756 次点击
所在节点    Python
10 条回复
neo1218
2016-07-26 23:06:27 +08:00
https://github.com/JoeDog/siege
我用的感觉蛮好的
ecloud
2016-07-26 23:20:33 +08:00
@neo1218 看了一下 readme ,比较接近我的需求,但是里面主要提的是压力测试这块。我还需要的是将 HTTP 的返回内容进行解析,取得业务逻辑相关数据,判断是否符合预期。有的业务逻辑是需要几次 HTTP 的来回才能算作一个测试用例。但是我在 readme 里并没有看到相关内容。
换个说法,我想要个以 python 为脚本语言,命令行版的,简化版的 loadrunner/RPT
lecher
2016-07-26 23:42:54 +08:00
用 tornado 去写吧。
tornado 的 asyncHTTPClient 可以快速写出并发效果的业务。
同时还可以做到对返回数据做检测、分析和结果入库。

唯一不好的就是需要自己写调度并发数量的逻辑。

这个是 tornado 写的测试框架,可以借鉴。
https://github.com/Damon-wenc/Auto-Test-Framework

关于 python 的其他测试框架。
https://github.com/jobbole/awesome-python-cn/blob/master/README.md
rainysia
2016-07-27 02:45:32 +08:00
系统级性能的, stress
性能级的, siege, jmeter
模拟的, locust
llbgurs
2016-07-27 08:17:22 +08:00
python 的测试框架 + request 不行吗?
ecloud
2016-07-27 12:00:52 +08:00
@rainysia 看了 locust ,感觉不错,准备试试
SlipStupig
2016-07-27 15:28:32 +08:00
不是应该用 selenium 么,前端后端都能喝一起测试
alphadog619
2016-07-27 16:11:47 +08:00
@SlipStupig selenium 用来做功能测试的
ecloud
2016-07-27 16:13:01 +08:00
@SlipStupig 都说过了,不是 web
ecloud
2016-07-27 18:03:49 +08:00
初步看了一下,决定用 Locust 了
优点:测试用例管理,多端、多用户模拟,并发,多线程,有还算是比较详细的报告输出,并且主从模式所有数据汇总到主机的 HTML 报告中的,权重控制多样化, HTTP 返回值可以自行解析完后定义成功还是失败
缺点:没有数据驱动(暂时只能硬编码到程序里读取一个固定的数据文件 /DB ,以后考虑给它写个扩展吧)
算是基本上满足了 85%的需求了吧
Locust 这东西的确是比较适合针对 RESTful 的 HTTP 服务器进行接口测试和压力 /性能测试的工具

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/295140

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX