HttpRunner 源码学习

使用最新版本的开发版本,从github仓库获取:

pip install git+https://github.com/HttpRunner/HttpRunner.git#egg=HttpRunner

 

源码阅读入口:setup.py文件

entry_points中,httprunner或者hrun命令会进入到cli.py文件中httprunner.cli:main_hrun方法。

 

部分方法介绍

cli:main_hrun  会根据命令后面跟的一些条件,执行不同方法,执行方法是api.py中的runner.run()。

此run()方法:

1、validator.py文件中校验跟在hrun命令后的是用例路径还是用例内容dict。

2、hrun 后面可以直接跟用例list[dict],也可以跟用例路径。

3、如果跟的是用例路径,会调用loader.py中loader_tests()方法获取所有用例。

4、然后调用api.py中_run_tests()方法执行用例。

 loader.py loader_tests()方法:

1、先看传入参数是否是路径列表、目录、绝对路径,分别处理。

2、如果是单个文件路径,调*load_file()加载文件,根据后缀json或者yaml调用不同加载方式。

loader.py中有个_check_format()方法 简单校验文件内容是否为空是否为list/dict类型。

*load_project_tests():加载项目信息,返回project_mapping

load_env:加载evn环境变量内容,以dict方式存储变量名和值。

load_debugtalk(load_python_module(module)):将debugtalk.py中functions和variables都以字典方式存储下来,存到debugtalk_module字典中。

load_api_folder: 加载api文件夹内容。

load_test_folder:加载suite文件夹内容。

返回project_mapping

*_load_testcase():加载用例信息。会用到loaded_testcase字典。

_load_teststeps(),从project_mapping中加载进对应的api和suite。

return teststeps

返回单个用例信息:

api.py中_run_tests()方法:

  • *parser.py文件中parse_tests()方法,根据evn/debugtakl等配置文件替换变量那些。函数:${func_name(x,xx)},变量: $mobile

  • *_add_tests()方法

  • *_run_suite()方法

  • *_aggregate()方法。

调试方法

1、需要先了解python中argparse库,解析命令行参数。

2、main_debug.py是调试文件入口。edit configurations-加入script parameters.

源码结构图

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值