PS:给想做自动化平台同学一点思路。
AutoMagic 是一个基于WebUI的自动化管理平台。为什么叫AutoMagic呢?因为自动化(Automation)在执行起来的时候是一个很神奇的事情,它可以无人值守的模拟人的操作,就像魔术(Magic)一样。 所以我给她取名叫AutoMagic。
AutoMagic从其工作分工应该分两部分:
Web管理平台,它是基于Python Django框架+Mysql开发,主要用来管理自动化测试用例和设计自动化测试场景、存放界面元素标识,通过界面录入存放在数据库中进行管理,它是一个纯粹基于Selenium关键字自动化原件管理平台。
客户端执行脚本(seleniumkeyword ),AutoMagic的执行效果展示主要靠它来体现,它的执行依附于web平台存储的用例和场景数据,seleniumkeyword可以不需要部署在服务器端,只要它能够连接到服务器端的数据库,部署在任何平台都可以执行。(这样也方便我们做分布式执行测试用例)
安装运行环境
在安装python、selenium、 mysqldb 的环境下运行,其它python依赖包根据关键词插件要求进行安装
目录脚本说明
TestSuite.py 测试用例执行脚本引擎是 ,它可以通过参数实现不同的执行方式
-t [taskid] 指定执行的AutoMagic任务
-u [userid] 指定执行脚本的用户
-r [runid] 执行测试用例脚本要同步的TestRailRunid,它只有在执行 -t 参数时才会生效。
-c [caseid] 指定要执行的单个用例的编号
-p [projectid] 指定要执行的项目id,会依次执行项目中所有模块和用例状态是启用的所有用例
-b [browser] 指定执行用例过程所使用浏览器,默认使用chrome浏览器,也可在执行case过程中通过openbrowser关键字重置
Exp:
python TestSuite.py -t 1 -u tsbc -r 1433 -b chrome
Base.py 是我们关键字维护脚本,class Action中重定义了python selenium的一些方法,其它部分均为自定义关键字。
自定义关键字示例:
@Action.add_action('InputText') def action_InputText(action_object, step_desc, value, loc): """ 文本框输入内容 :param action_object: :param step_desc: :param value: text :param loc: :return: """ print loc, value action_object.send_keys(loc, value)
AddCase.py 同步用例到TestRail到脚本
-t [taskid] 指定执行同步的AutoMagic任务
-u [userid] 指定执行脚本的用户
-s [sctionid] 执行同步case到TestRail的那个用例集(section_id代表所在用例集)
HTMLTestRunner.py 生成报告的脚本文件
RestApiUtil.py、RestApiUtil.py 是发包MW模拟安全事件和发送pcap发包接口
testrail.py TestRail的接口API
result目录为报告接口目录
data目录执行上传附件关键字时,附件存放目录
nwjs-sdk-v0.19.3-win-x64 是node webkit应用chromedriver驱动
目录结构:
生成测试报告效果(Fail截图版本):
生成测试报告效果(Case视频回放版本):视频回放报告生成当前只支持在Linux环境下运行