摘要
如何规划自动化框架、如何设计。自动化测试框架需要包含那几部分。一起给自动化测试框架定个名字吧…… ,给自动化框架定个名字吧...~ AutoRunFrameWork
正文
为了让学习者,将主要精力放在自动化框架本身,避免疲于为搭建环境而耗费时间。我们选取baidu的搜索的业务流程来做为基本的测试用例。这样学习过程中不需要在为测试项目环境而发愁。(测试场景脚本仅仅是一条用例,掌握了selenium的基本知识技能,完全可以应付大部分情况,本系列主题主要是框架,因此侧重点再自动化测试框架了哦)
框架的设计思路
采取类似类图(类图设计的并不严谨)的方式,把框架的设计内容梳理下...。
1.TestCase:代之测试用例(或用例集),其应该还有setUp、test_、tearDown。其中test*是用例主体,setUp与tearDown,可以理解为测试用例的初始化与还原。
(如:假如要测试下订单的流程,首先需要商品列表中存在某商品,下订单后,需要确定订单库里有。用例结束后,再把该订单删除,还原为初始状态。这其中确保商品列表中有某商品,就是setUp;在订单列表中删除订单,相当于tearDown)2.seleniumLibrary:selenium库,操作测试页面即及页面元素肯定需要借助WebDriver,因此需要selenium的支持
3.UnitTest:单元测试框架,主要是使用其中的断言进行用例执行结果的验证。setUp、tearDown都是继承至UnitTest才可以使用的
4.OS:自动化框架需要跟本身操作系统(电脑)进行一些交互,比如读取文件路径、写入文件等。因此需要用到OS模块
5.PageBase:也可以命名为Basepage,一个命名罢了...~,所有测试页面的父类,采取PageObject设计的思想,其用于承载一些测试页面的公共方法、或者WebDriverApi方法的二次封装。采取PO(PageObject的缩写)模式后,单个测试页面的可维护性大大提高,也符合自动化测试框架的设计思想。
6.Log:日志模块了,日志跟开发日志的作用是完全一致的哦...。写得好的自动化测试脚本,日志有序完备,能够用于跟踪关键路径,方便定位问题,有时还可以帮助进行性能优化。
7.TestCaseInfo:用例信息,用例执行的一些属性(id、name、result等),每条用例执行时希望带有的一些信息。
8.ConfigIni:配置文件的操作,这里我们选取的配置文件格式是INI。你也可以选择xml作为配置文件,内容设置成为对xml的操作即可,原理上是相同的
9.DoExcel:自动化测试过程中,测试脚本中不要存放测试数据。要做到测试数据与测试脚本的分离。可以理解为数据驱动哦...。不同的数据可以实现不同的测试场景(正确的用户名与密码、错误的用户名与密码,是两条不同的测试用例哦...),而此时测试脚本流程不变,只需要读取不同的数据即可实现。
10.send_mail:目前是互联网思维,测试报告不要在要跑到固定的目录下去查看了,可以直接将测试报告作为邮件正文或附件发送给团队成员,方便及时指导自动化测试的结果。
测试框架结构
上面把框架的设计思路梳理了下,接下来把框架的详细目录层级结构展现下(后续实现测试框架将按照该目录层级及命名开展):
- Config 配置文件的目录
-
- config.ini 配置文件
-
- globalconfig.py 获得日志路径、测试用例路径、测试报告路径、测试数据路径
- Data 测试数据
-
- TestData.xlsx 测试数据
- Log 日志
-
- Log.py 日志类。设置日志类,其他模块或文件需要日志类时,调用该文件
- Public 公共文件(函数)库
-
- Common 封装的公共的方法
-
- Commonconfig.py 公共的参数配置:调试过程中的测试数据等
-
- DoExcel.py 操作excel(数据驱动)
-
- Send_mail.py 发送邮件(html)
-
- ReadConfigIni.py 读取ini格式的配置文件
-
- TestCaseInfo.py 测试用例信息
- Pages 使用po模式设计的测试页面
-
- BasePage.py 基类,对一些测试页面公共方法、属性的封装及webdrive一些方法的二次封装
-
- bing.py 测试页面
- Report 测试报告
-
- Log 日志目录
***Log日志
- Log 日志目录
-
- TestReport 测试报告目录
***html测试报告
- TestReport 测试报告目录
- TestCase 测试用例
-
- TC_BingSearch.py
- Run.py 控制测试用例的运行