企业级UI自动化平台—测试计划

一小只快乐码农2024-04-14 21:09:09  140

上章节我们实现了如何运行脚本,这节我们继续如何添加完整的测试计划。

先梳理需求,测试计划应该包含的逻辑,创建测试计划,运行测试计划,测试计划的增删改查,单个脚本的增删改查。

具体需求分解为:

测试计划列表显示:在表格上,列出了所有的测试计划,包括他们的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
0
随机主题
吴绮莉曾称家门永远向女儿敞开, 晒切蒜视频遭嘲, 被问怎么沦落了王猛: 从没见爱德华兹这么累过 根本突不动 第四节全是跳投终结专业收割宝妈,张庭卷土重来地球班往事: 苏联解体时, 俄罗斯继承了1000亿债权, 要回来多少?手机弹出“系统更新”提示, 大多数人会这样做! 看看老师傅怎么说三个“音符”奏响内部关系“和谐曲”赖冠霖与神秘女性亲密约会曝光“我来雄安了! ”全国35家80余位媒体代表走进雄安女子为了帮衬娘家, 婚内转移财产300万, 丈夫得知后诉讼离婚辽篮夺冠发布会杨导感谢所有人!夸赞新疆主场新疆球迷!国服开服后快人一步! 熊猫人之谜职业详细推荐, 赢在起跑线!混沌看盘: 螺纹如期冲上半年线, 短线需调整巩固站稳昆明遇到1998年丰田花冠, 卡拉罗前身, 防锈车架, 当年落地30万元赖清德就任, 日本上蹿下跳, 中方针对琉球? 华春莹: 落实开罗宣言32岁顿悟:女孩子,存钱真的要趁早!茅台的主营业务是什么? 你真的了解吗?牟林: 美国悍然提出杀人双标, 国际刑事法院逮捕以总理博弈白热化里程碑! 德约2-0完胜德国悍将旗开得胜, 生日夜手捧蛋糕乐开怀vivo XFold 3 Pro低价版: 折叠屏旗舰的亲民体验好! 3.5目, 杨鼎新, 硬气, 24强力斩中国00后名将强势晋级!张作霖做事有多狠?不仅崩掉自己小舅子,还敢集合部队和日本开战
最新回复(0)