HttpRunner_接口测试框架_v2.5.7_框架解析
2021-02-17 16:16:56 19 举报
HttpRunner_接口测试框架_v2.5.7_框架解析
作者其他创作
大纲/内容
_load_json_file
# 实例化一个TestSuite类test_suite = unittest.TestSuite()
# test_method里定义了如何执行测试用例test_runner.run_test(test_dict)
--validate验证testfile格式
raw_config_variables_mapping.update(override_variables)
load_file(path)
if request--->[\"type\"] = \"api\"
# 将testsuites转化为最终teststeps__get_parsed_testsuite_testcases
#parse parameters
# 调用loader.is_test_path函数如果path为路径或路径列表
--log-level
# 执行gen_html_report函数,生成测试报告
# 调用loader.is_test_content如果文件为apis/testcases/testsuites
# 执行HttpRunner._run_suite函数,运行测试用例results = self._run_suite(test_suite)
# 初始化unittest的TextTestRunnerself.unittest_runner = unittest.TextTestRunner(**kwargs)
# 为每一个testcase创建一个testsuiteloaded_testcase = self.test_loader.loadTestsFromTestCase(TestSequense)
# 通过环境变量渲染variable参数-->LazyString(${ENV(BASE_URL)})__prepare_config(testsuite[\"config\
解析命令行选项
# 执行_parse_testcase函数,构造teststeps
# 执行HttpRunner.run_tests函数
if teststeps--->[\"type\"] = \"testcase\"
判断test_type
DONE!
# 执行report.stringify_summary函数生成测试结果summaryreport.stringify_summary(self._summary)
if testcases--->[\"type\"] = \"testsuite\"
--failfast
_load_yaml_file
# 执行utils.extend_variables函数按照优先级合并参数,写到parsed_testcase[\"config\"][\"variables\"]variables priority: parameters > testsuite config > testcase config > testcase_def config > testcase_def tests > api
# 读取path里的测试文件loaded_content = load_test_file(path)
判断path类型
# 执行utils.extend_variables函数,将parameter整合到之前的参数集合中
load_csv_file
project_mapping[\"env\"] = load_dot_env_file(dot_env_path)
# 初始化unittest.TestLoaderself.test_loader = unittest.TestLoader()
--dot-env-path指定环境变量路径
# 执行parser.parse_tests函数,test_mapping--->parsed_testcases parsed_testcases = parser.parse_tests(tests_mapping)
if test_type == \"testsuites\"
# 执行_parse_testcase函数,创建teststeps
if test_type == \"api\"
# 调用loader.load_cases函数,将此路径的文件读到内存中--->test_mapping
args = parser.parse_args()
if list--->[\"type\"] = \"testcase\"
# 执行parse_variables_mapping函数,将lazystring解析为具体的值parse_variables_mapping(overrided_testcase_config_variables)
# 执行parse_lazy_data将lazystring解析为具体的值
# 遍历api,执行_parse_testcase函数,构造teststeps
# 根据关键词执行对应load函数
# 执行parsed_testcase[\"config\"].setdefault(\"base_url\
# 执行parse_parameters函数,将parameter通过笛卡尔积方式解析成list
# 执行loader.init_pwd函数load-debugtalkloader.init_pwd(project_working_directory)
project_mapping[\"test_path\"] = os.path.abspath(test_path)
parse_lazy_data
# 执行HttpRunner._add_test函数# add parsed_testcases to test suitetest_suite = self._add_tests(parsed_testcases)
project_mapping[\"PWD\"] = project_working_directory
testfile_paths
if test_type == \"testcases\"
project_mapping[\"functions\"] = load_debugtalk_functions()
# 执行unittest_runner.run函数,执行测试result = self.unittest_runner.run(testcase)
httprunner.cli.main()--dot-env-path=env\\test.env testsuites\\demo_testsuite.yml
# 将每个testcase的testsuite添加到test_suite中
0 条评论
回复 删除
下一页