自动化测试框架

一:框架简介

1.使用自动化框架意义

1.提高代码的易读性

2.提高编码效率

3.提高代码的易维护性

2.框架内容

基于技术以及时间有限,我们暂时只对我们自动化框架做出以下分层:数据层,模块层,报告层,用例层,以及testrunner。用例层和testrunner主要导入unittest框架,下文中会将这两层总结在一起进行简要概述。

二:数据层

数据层也称呼为数据驱动,该层主要作用是将测试数据存放到Excel表格中,通过代码读取excel中数据。这样做的目的是实现数据分离,使代码整洁度提高,效率提高,每一个测试数据表现出来是一个测试用例。

实现步骤:

1.新建data文件夹,在文件夹中新建Excel表格,将测试数据存放到表格中。如图:

2.cmd中下载xlrd,

如果在配置环境时已经下载就不用再下载了. 新建python文件如图中 excelRW. py。使用import xlrd, 导入xlrd既可以读取excel数据。

3、找到Excel表路径:找到根目录的 data文件夹 里的 all_accounts.xls

4、定义一个读取Excel表格的函数,里面设定有 esheet, rowx, colx 三个变量,分别表示表单,行,列

5、通过 book 读取 Excel 路径信息

6、通过 sh 读取 book 下表单索引信息

7、通过 a 读取 sh 表单下的行和列的信息。完成这些之后,可以在相关位置通过实例进行引用

三:模块层

模块层主要是对app模块进行一系列的定位操作,再将这些操作封装在一个函数中,方便后期在unittest框架中直接调用这个函数。具体定位操作在此不做详解,参考另外一篇元素定位文档。以下为恩爱号登录小模块举例:

四:unittest框架

用例层以及用例执行主要使用的unittest框架。详细了解unittest框架可以访问官网https://docs.python.org/2/library/unittest.html。

unittest框架包括4个部分:Test fixture,Testcase,Testsuite,Testrunner。

Test fixture表示是测试准备前要做的工作和测试执行完后要做的工作,包括setUp()和tearDown()来实现。我们在setUp()主要是存放是启动app代码,tearDown()在每个测试方法后执行,完成清理工作,一般都存放driver.quit()代码。

Testcase:一个Testcase的实例就是一个测试用例,如test_case1, test_case2。我们将之前模块层封装的函数调用到这里面作为一个用例,同时通过assert断言方法用于检测判断比较。

以下为Testfixture和Testcase实例:

TestSuite: 对一个功能的测试往往需要多测试用例的,可以把多的测试用例集合在一起执行,这就是TestSuite的概念。常用addTest()方法将一个测试用例添加到测试套件中。

TextTestRunner: 是用来执行测试用例的,其中的run(test)用来执行TestSuite/TestCase。测试的结果会保存在TextTestResult实例中。

五:报告层

报告层存放的是测试用例执行的结果。下载HTMLtestrunner后,就会自动生成html文件(这个步骤在配置自动化环境文档中有所介绍)。unittest框架中使用testrunner执行测试用例完成后,找到reporter文件夹通过浏览器打开xea_reporter文件,就能看到每条用例执行结果。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180510G00YJK00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券