上章节我们实现了如何运行脚本,这节我们继续如何添加完整的测试计划。
先梳理需求,测试计划应该包含的逻辑,创建测试计划,运行测试计划,测试计划的增删改查,单个脚本的增删改查。
具体需求分解为:
测试计划列表显示:在表格上,列出了所有的测试计划,包括他们的id、名称、包含的脚本、创建时间、更新时间、运行结果等信息。
创建和编辑测试计划:在页面的顶部,实现一个“创建测试计划”的按钮,点击之后会打开一个模态窗口,在这个窗口中,你可以选择项目,输入计划名称,并选择计划所包含的脚本。点击每一个测试计划中的“编辑”按钮,也会打开相同的窗口,并自动填值,让你修改测试计划。
删除测试计划:在测试计划列表的每一行中,都有一个“删除”按钮,点击之后会删除对应的测试计划。
运行测试计划:在页面顶部,有一个“运行测试计划”的按钮,点击之后会依次运行你在列表中选中的所有测试计划。
搜索测试计划:在页面顶部,还有一个搜索框和按钮,可以让你通过脚本名称来筛选和搜索测试计划。
分页浏览:在页面底部,有一个分页导航,让你可以逐页查看所有的测试计划。
具体函数实现:
测试计划列表显示的代码:
创建测试计划的代码:
3.编辑测试计划的代码:
4.删除测试计划的代码:
5.批量运行测试计划的代码:
6.搜索测试计划的代码:
7.分页浏览的代码:
8.加载项目和脚本数据的代码:
对应后端接口实现:
'/get-all-plans':获取所有的测试计划。在JavaScript的'loadAllPlans'函数中调用。
2.'/save-plan':保存新建的测试计划。在JavaScript的'"#save-plan".click'函数中调用。
3.'/get-plan-id':获取特定测试计划的详情。在JavaScript的'".edit-plan".click'函数中调用。
4.'/update-plan':更新测试计划。在JavaScript的'"#save-plan".click'函数中调用。
5.'/delete-plan':删除测试计划。在JavaScript的'".delete-plan".click'函数中调用。
6.'/run-plan-case':运行测试计划。在JavaScript的'"#run-plan".click'函数中调用。
@app.route('/run-plan-case', methods=['POST'])def run_plan_case: # 获取前端发送的测试计划id数组 plan_ids = request.json['selectedPlans'] print(plan_ids) for plan_id in plan_ids: # 初始化计划结果为成功 run_result = "成功" # 去execution_plans表中根据id获取每个测试计划的included_scripts字段 sql = f"SELECT included_scripts FROM execution_plans WHERE id = {plan_id}" plan_info = db.select_data(sql) print('planinfo的数据如下:') print(plan_info) included_scripts = json.loads(plan_info[0][0]) # included_scripts字段是包含了脚本id的一个数组,对每个脚本id... for script_id in included_scripts: print('scriptid的数据') print(script_id['id']) # 去generated_scripts表中根据id取出对应的department_name,project_name,和script_name sql_script = f"SELECT department_name, project_name, script_name FROM generated_scripts WHERE id = {script_id['id']}" script_info = db.select_data(sql_script) print('scriptinfo信息如下') print(script_info) department = script_info[0][0] project = script_info[0][1] script = script_info[0][2] print(department,project,script) script_result = run_script(department, project, script) # 如果任何一个脚本执行失败,则更新计划结果为失败 if script_result.json['status'] != 'success': run_result = "失败" break #需要更新的数据 data_to_update = (run_result, plan_id) #更新语句 sql_update = "UPDATE execution_plans SET run_result = '{}' WHERE id = {}".format(*data_to_update) # 执行更新操作 db.update_data(sql_update)
7.'/script-execution-copy':获取所有的项目和测试脚本。在JavaScript的'loadProjectsAndScripts'函数中调用。
综上,我们整个平台的核心模块功能逻辑全部实现完毕。
可以翻看往期文章,自行先梳理一遍,后续文章会公开源代码地址。
下一章节,我们总结项目内的高频代码逻辑。敬请期待
转载此文是出于传递更多信息目的。若来源标注错误或侵犯了您的合法权益,请与本站联系,我们将及时更正、删除、谢谢。
https://www.414w.com/read/220972.html