当前位置: 首页 > news >正文

pytest+uiautomation+allure+Excel 数据驱动桌面自动化

pytestuiautomationallure Excel 数据驱动桌面自动化一、安装依赖pipinstallpytest uiautomation allure-pytest openpyxlopenpyxl专门读写xlsx 格式Excel二、调整项目结构desktop_automation/ ├── config/setting.py ├── data/ │ └── case_data.xlsx # Excel测试数据 ├── common/ │ └── read_excel.py # 封装读取Excel工具类 ├── page/ │ ├── base_page.py │ └── notepad_page.py ├── testcase/test_notepad.py ├── conftest.py └── pytest.ini三、Excel 测试数据格式新建data/case\_data\.xlsx工作表名input\_datacase_nameinput_contentexpect_content普通文本输入桌面自动化 Excel 数据驱动桌面自动化 Excel 数据驱动特殊字符输入123#$ 测试123#$ 测试空值输入长文本输入基于 pytestuiautomation 做桌面 UI 自动化基于 pytestuiautomation 做桌面 UI 自动化四、封装 Excel 读取工具 common/read\[_excel.py](_excel.py)fromopenpyxlimportload_workbookclassReadExcel:staticmethoddefget_excel_data(file_path,sheet_name): 读取Excel用例数据返回列表字典格式 :param file_path: excel路径 :param sheet_name: 工作表名 :return: [{},{},...] wbload_workbook(filenamefile_path)wswb[sheet_name]# 获取表头headers[cell.valueforcellinws[1]]data_list[]# 遍历行数据跳过表头forrowinws.iter_rows(min_row2,values_onlyTrue):row_dictdict(zip(headers,row))data_list.append(row_dict)wb.close()returndata_list五、配置文件 config/[setting.py](setting.py)# 被测应用APP_PATHnotepad.exe# 全局等待IMPLICIT_WAIT3# Excel数据路径EXCEL_DATA_PATH./data/case_data.xlsx# Excel工作表名EXCEL_SHEETinput_data六、页面层代码不变base\[_page.py](_page.py) 不变notepad\[_page.py](_page.py) 不变七、Excel 数据驱动测试用例 testcase/test\[_notepad.py](_notepad.py)importpytestfromcommon.read_excelimportReadExcelfrompage.notepad_pageimportNotePadPagefromconfig.settingimportAPP_PATH,EXCEL_DATA_PATH,EXCEL_SHEET# 读取Excel所有测试数据defget_excel_case_data():returnReadExcel.get_excel_data(EXCEL_DATA_PATH,EXCEL_SHEET)classTestNotePadExcelDDT:defsetup_class(self):self.pageNotePadPage()self.page.start_app(APP_PATH)defteardown_class(self):self.page.close_app()# Excel数据驱动参数化pytest.mark.parametrize(case,get_excel_case_data(),idslambdax:x[case_name])deftest_input_by_excel(self,case):Excel数据驱动-记事本输入测试in_textcase[input_content]exp_textcase[expect_content]self.page.input_edit_content(in_text)actualself.page.get_edit_content()assertactualexp_text,f失败预期{exp_text}实际{actual}八、[conftest.py](conftest.py) 失败截图不变importpytestimportallureimportuiautomationasautopytest.hookimpl(tryfirstTrue,hookwrapperTrue)defpytest_runtest_makereport(item,call):outcomeyieldreportoutcome.get_result()ifreport.whencallandreport.failed:try:imgauto.CaptureToImage()allure.attach(img,失败截图,allure.attachment_type.PNG)except:pass九、pytest.ini 不变[pytest] testpaths testcase python_files test_*.py python_classes Test* python_functions test_* addopts -vs --alluredir./report/temp --clean-alluredir十、运行命令# 执行用例pytest# 生成并打开allure报告allure generate ./report/temp-o./report/html--cleanallureopen./report/html十一、扩展用法增加用例状态控制Excel 新增列is\_run值为1执行0跳过读取数据时过滤data_list[dfordindata_listifd.get(is_run)1]区分正向 / 逆向用例Excel 加case\_type字段用例内做不同业务逻辑登录场景直接套用Excel 填账号、密码、预期结果页面写登录方法即可十二、注意事项只支持.xlsx不支持老版.xlsExcel 表头名称必须和代码取值字段完全一致空单元格读取为None代码可自行转为空字符串
http://www.rkmt.cn/news/1302300.html

相关文章:

  • 企业内如何安全高效地通过 Taotoken 分发和管理 AI 能力
  • 基于FIM范式的本地化AI代码生成工具fim-one部署与调优指南
  • 基于MCP协议构建技术术语翻译服务器:AI开发工作流效率提升实践
  • 防火墙和手动启动都试了?ArcGIS License Server无响应,可能是这两个核心文件在捣鬼
  • .NET AI智能体开发实战:BotSharp框架核心架构与多智能体系统构建
  • 仅限本周开放|ElevenLabs土耳其语定制音色内测通道获取指南(含申请成功率提升300%的3个隐藏条件)
  • AI记忆增强实战:基于向量检索与提示工程解决大模型上下文遗忘
  • 系统管理员如何利用Claude-Code提升运维效率:从入门到实战
  • 树莓派扩展板EYESPI Pi Beret:简化硬件连接,加速原型开发
  • 人性最残忍的真相是:你越不把自己当回事,别人就越不把你当回事
  • CircuitPython嵌入式游戏开发:基于TileGrid的迷宫寻蛋与JSON数据持久化实践
  • 2026年5月国内主流招标网对比推荐:五大平台排名评测夜班投标防漏标 - 品牌推荐
  • Linux服务启动失败排查方法
  • Linux配置文件变更与回滚思路
  • 游戏技能工程化:用数据驱动与计算机视觉构建Apex Legends个人成长系统
  • 基于GitHub Pages与Jekyll的静态博客搭建与深度定制指南
  • 如何选中国办公家具厂家?2026年5月推荐五大品牌评测办公空间提升效率对比 - 品牌推荐
  • 如何永久保存微信聊天记录?终极免费工具完整指南 [特殊字符]
  • LLM应用快速演示框架:从架构解析到智能体开发的实战指南
  • 基于大模型的智能招聘系统:从语义匹配到流程优化实战
  • 终极指南:如何用WarcraftHelper让魔兽争霸3在现代电脑上完美运行 [特殊字符]
  • 智能体技能编排框架:从工作流引擎到复杂任务自动化
  • 如何选招标网?2026年5月推荐五大平台评测夜间寻标防漏单对比 - 品牌推荐
  • 用Python与USB信号灯打造GitHub Actions状态监控器
  • 2025-2026年国内十大消防泵厂家推荐:十大排名产品评测夜间应急防无水 - 品牌推荐
  • 基于MONSTER M4SK的智能恐龙手偶改造:嵌入式音频DSP与实时交互实践
  • 如何选电竞鼠标?2026年5月推荐十大品牌评测熬夜对战防手酸对比 - 品牌推荐
  • 最新英语词汇练习软件推荐,哪款更靠谱适合英语学习者使用
  • AI动画生成实战:基于Stable Diffusion与LoRA的《瑞克和莫蒂》风格创作
  • FlexPilot AI:可定制提示词与多模型支持的VSCode智能编程助手深度解析