自己折腾了一个python的自动化测试框架,梳理了一下流程,简单分享一下。
项目背景
B/S架构,进行用户界面的自动化测试
工具选择
python开发的自动化测试框架,足够灵活,可以随时根据需求进行变更,易于维护
框架思路(unittest)
采用数据驱动的设计,将数据分层出来,与业务逻辑剥离,测试人员专注测试用例,不用关注代码,提高了测试效率
测试框架介绍
测试工程的结构如下:
Data目录
存放涉及业务的资源,例如上传图片场景的图片资源
Driver目录
存放浏览器驱动文件
Excel目录
存放测试用例(重要)
4个sheet分页,如下:
PageElements分页 –存储页面元素的关键字定位信息
TestConfig 分页 --配置信息
TestSuite 分页 --测试用例标题
TestSteps 分页 --测试用例的执行步骤
Package目录
封装的方法简介
assertUtil.py --断言
assert_equal """预期结果和实际结果 相等"""
assert_prompt """页面提示信息"""
…
base.py --涉及系统的信息(暂时不用)
base_get_hostname """获取本机电脑名"""
base_get_ip """获取本机ip"""
…
browserUtil.py --浏览器的操作
browser_title """获取当前浏览器标题"""
browser_url """获取当前浏览器URL"""
…
excelUtil.py --excel文件的操作
excel_open """打开excel文件(xls)"""
excel_sheet """指定sheet页面"""
excel_cell_data """获取指定单元格内容"""
…
keysUtil.py --键盘操作
location.py --封装页面元素定位
login.py --登录业务
objectMap.py --关键字映射
ob_key_input """根据关键字input执行页面元素查找"""
ob_key_click """根据关键字click执行页面元素查找"""
…
util.py --通用场景
ut_highlighted """元素高亮"""
…
Picture 目录
存放用例执行的报告
Test_case 目录
存放测试用例执行脚本
Config.py
存储常量、配置信息之类的信息
PageElements.py
存储页面元素信息
例如登录页面的3个控件:
"登录-输入用户名" --表示用户名输入框
"input>css>input[placeholder='请输入账号']"
Input –定义的关键字
Css –元素定位方式
input[placeholder='请输入账号'] --元素定位表达式
测试用例执行的流程图:
步骤1:
执行TestCase_UI.py脚本,用例启动
步骤2:
读取excel目录下测试用例(*.xls)
TestConfig分页:
获取浏览器启动类型 --启动相应浏览器
获取URL地址 --打开URL地址
步骤3:
读取TestSuite分页:
逐行读取测试用例执行标识,标识为“yes”表示执行该条用例,为“no”跳过该用例
获取“测试用例序号”
步骤4:
读取TestSteps分页:
按照“测试用例序号”读取测试用例执行步骤
例如VDT_WDGZT_001用例,存在4个步骤,逐行读取“测试步骤描述”
步骤5:
读取PageElements分页:
按照“测试步骤描述”读取关键字、页面定位元素、页面元素定位表达式
按照关键字、页面定位元素、页面元素定位表达式 定位到页面元素执行相应操作
例如如下3个步骤:
在输入框中输入“搜索资源”
单击搜索按钮
执行检查点操作
注意:
每个步骤执行完毕,根据执行的情况在测试用例中回写“测试结果”
例如“我的工作台”步骤执行成功,在TestSuite分页,“测试结果”填写“用例步骤执行成功”
相应的在TestSteps分页,测试用例1,的“测试结果”填写“用例执行成功”
如果用例步骤执行失败
例如“公共-登录用户名称检查” 步骤执行失败,在TestSuite分页,“测试结果”填写“用例步骤执行失败”,“页面截图”填写失败截图的路径
相应的在TestSteps分页,测试用例1,的“测试结果”填写“用例执行失败”
测试用例步骤出现失败的情况,则不再执行该用例的剩下的步骤,开始执行下一个测试用例
步骤6:
一条测试用例执行完毕,重复执行步骤3、4、5,直至全部测试用例执行完毕
步骤7:
用例执行完毕,输出测试报告,报告详情:
测试用例执行日志
例如在测试用例中勾选2个用例执行,执行日志如下: