接口自动化框架 - httprunner

自己曾经写过一个接口自动化的框架,并做了一版本的优化,一直觉得做的还不错,且没依赖现有的框架。

最近因为一些工作的原因,开始又思考之前写的框架的一些缺点及如何优化,所以找到比较有名的httprunner源码来比较和学习下

 

1、httprunner 提供了比较便利的脚手架代码及命令行运行方式

cli.py脚本里:

parser = argparse.ArgumentParser(description=__description__)
parser.add_argument

提供比较多的命令参数,去实现各种类型的操作

2、在运行用例和用例集的时候,依赖于unittest

api.py. _add_tests. -> _add_test - >run_test - > _run_test运行每个用例

其中的setuphooks , teardownhooks 用到了反射,可以实现对用例数据的动态处理

3、在将用例写入到用例集里面的时候,用到了元编程

for testcase in testcases:
config = testcase.get("config", {})
test_runner = runner.Runner(config)
TestSequense = type('TestSequense', (unittest.TestCase,), {})

主要是为了将json维护的用于与unittest的testsuite, testrunner结合起来

4、对于用例、用例集的定义比较准确,保证了单个用例的可执行性 

5、在支持单个接口的情况下,引入了locust,可以进行简单的压力测试

 

httprunner的代码量并不算多,但还是有很多可以学习和借鉴的地方,很不错的一个框架

继续研究下源码,希望以后写一个更好的接口自动化框架或者针对自己的项目进行一定的改进。

 

posted on   yingchen  阅读(880)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示