前端自动化测试框架
项目说明 本框架是一套基于selenium+Python3.7+yaml+Robot Framework而设计的数据驱动UI自动化测试框架,Robot Framework 作为执行器,本框架整体特点为:用例与代码分离;用例驱动测试的执行;分层设计、脚本模块化;自动准备测试条件和数据、事后清理;支持失败多次重试、且在每次重试前都会还原一次测试环境,保证重试的成功率;支持邮件呈现测试结果;可灵活挑选项目和用例执行。 框架特点说明 数据驱动 封装一个测试脚本,通过不同的数据来驱动,保证测试覆盖率 用例执行前初始化,执行后释放资源 执行测试数据,并进行结果判断,测试失败或者异常时,会产生相关日志和截图 用例与代码分离 代码中不含有测试用例 测试用例采用robot格式撰写 用例按功能点分类 每个用例都是独立的,不互相依赖也不互相影响 可按项目、模块、测试点挑选执行用例 运行结束后,还原测试环境,清理脏数据 分层设计 操作对象、页面元素、业务逻辑、测试数据相互剥离,灵活调用 封装底层操作组件 按页面封装和分类页面元素 封装基础逻辑,组合业务逻辑实现功能点 脚本模块化 不同功能脚本模块化,各模块间保持独立性和可融合性 封装基础方法,如随机邮箱等 封装通用模块,如文件读写、压缩文件、邮件发送、日志等 模块支持自主开启和关闭 失败多次重试 可自主开启和关闭失败自动重试功能 重试开始在每轮测试结束之后 每次重试前后会初始化环境和还原环境 只重试失败用例 每次重试结束会自动合并重试报告 重试结束会自动合并出总报告 报告可选择自动压缩并邮件发送 测试结束后,也可手动启动失败重试和合并报告 技术栈 selenium Python3.7 Robot Framework yaml AutoItLibrary logging SSHLibrary databaselibrary 环境部署 安装python3.7,并将Python的安装目录添加到系统环境变量的Path路径中 命令行窗口执行pip install -r requirements.txt 安装工程所依赖的库文件 AutoItLibrary安装 安装autoit-v3-setup.exe(V3.3.14.5),安装过程中一定要选x64,不然加载AutoItLibrary还是会是红色 pip install robotframework-autoitlibrary 在Python安装目录(\Python37\Lib\site-packages\win32com\client)下,修改dynamic.py文件,在import pythoncom后,加 pythoncom.CoInitialize() 。(目的是解决在ride中导入AutoItLibrary时,报(-2147221008, ‘尚未调用 CoInitialize。’, None, None)的错误。) 将相关浏览器的驱动,比如谷歌浏览器的驱动chromedriver.exe放在python的安装目录(\Python37)下 将自定义库,比如randomGenerator.py放在python目录(\Python37\Lib\site-packages)下 在Python安装目录(\Python37\Lib\site-packages\robotide\contrib\testrunner)下,修改testrunner.py文件,将’latin1’ if IS_WINDOWS修改为’mbcs’ if IS_WINDOWS。(目的是解决RIDE控制台中文显示乱码的问题),修改后的内容和位置具体如下:
安装UI元素定位工具(根据实际需要选装)
火狐浏览器插件 Try XPath xPath Finder ChroPath 谷歌浏览器插件 ChroPath
框架目录结构图及相关说明
1、代码目录结构图如下 2、目录结构说明 Config ===========> 配置文件 pycode ===========> python公共方法、模块封装,工具类等 rfcode ==========> 存放项目/系统的测试用例、公共配置、界面元素、业务逻辑操作等等 logs ==========> 日志文件 Report ==========> 测试报告 common_Run.py ===========> 测试用例总执行模块 testfile ============> 存放测试过程的操作文件 requirements.txt ============> 相关依赖包文件 run_test.bat =============> 测试启动按钮,测试过程中,若有失败则自动进行失败重试 retry.bat ============> 测试结束后,再次进行失败重试手动启动按钮
代码设计与功能说明
1、定义运行配置文件 config.yml 该文件主要控制测试的执行方式、模块的功能开关、测试用例的筛选、邮件的配置以及日志的配置,具体如下: 2、测试用例的设计 测试用例以robot格式的文件保存,平时只需维护测试数据和期望结果,维护成本低。测试用例的数据格式如下: 3、用例执行脚本 按照测试用例,组合业务逻辑,实现功能点测试,以供测试用例循环调用 4、测试执行主程序common_Run.py(收集测试用例,批量执行并生成测试报告,并发送报告到邮件) 5、测试报告呈现 测试概要报告 测试执行过程中若有失败重试时,则报告中会呈现出前一次失败的结果和原因,同时也会呈现出重试后成功的结果,并且最终的报告结果以最后一次的重试结果为准 测试执行过程有失败用例时,报告呈现失败截图 报告发送至邮件时,邮件标题呈现测试通过与否,或失败用例数 邮件正文直接显示本次测试概要报告,直观显示出执行用例数,失败用例数,失败的用例模块等结果。
项目实战演示
|