使用最新版本的开发版本,从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.