自动化测试开展的前提

经过多轮的手工测试,且迭代基本稳定之后,可以开展自动化测试,本项目的模块基本都可以是实现自动化测试。

自动化测试可以实现以下场景的测试:

1) 解决-回归测试

2) 解决-压力测试

3) 解决-兼容性测试

4) 提高测试效率,保证产品质量

自动化测试的开始节点

自动化测试的时间节点是功能测试中冒烟测试全部通过且主功能遗留bug数量为0,测试用例中的一级功能不允许遗留测试等级为严重及以上的bug,二级用例中可以遗留几个(一般<=5个)严重程度为一般的bug,在这个标准的前提下,我们视系统基本达到稳定,可以进入到自动化测试环节。

环境部署

预备工作

python 3.5及以上版本 pycharm Windows7/10

安装Python3.5及以上版本

下载地址:https://www.python.org/downloads/release/python-371/ 下的Windows x86-64 executable installer

安装pycharm

下载地址:http://www.jetbrains.com/pycharm/download/#section=windows

安装Appium

1、安装Node.js

下载地址:https://nodejs.org/en/download/releases/

注意:Node.js版本要注意与Appium兼容

安装完成后在按键*Win+R*输入cmd打开Windows 命令提示符,

输入如下命令:

C:\Users\Ahui>*node* *-v*

v6.11.3

C:\Users\Ahui>npm -v

3.10.10

2、Appium 安装

Appium Server其实可以通过命令 npm install -g appium来安装。

3、镜像设置

npm install -g cnpm --registry=https://registry.npm.taobao.org

执行完成命令看到如下提示则表示设置完成

C:\Users\Ahui> npm install -g cnpm --registry=https://registry.npm.taobao.org

npm WARN deprecated socks@1.1.10: *If* using 2.x branch, please upgrade *to* at least 2.1.6 *to* avoid a serious bug with socket data flow *and* an import issue introduced *in* 2.1.0

C:\Users\Ahui\AppData\Roaming\npm\cnpm -> C:\Users\Ahui\AppData\Roaming\npm\node_modules\cnpm\bin\cnpm

+ cnpm@5.2.0

added 764 packages *in* 63.767s

4、appium 安装

使用如下命令来执行安装:

#**安装最新版本**

cnpm *install* -g appium

#**安装指定版本**

cnpm *install* appium@1.7.2 -g

5、appium配置

安装完成之后可以使用如下命令查看appium的安装路径

C:\Users\Ahui>where appium

C:\Users\Ahui\AppData\Roaming\npm\appium

C:\Users\Ahui\AppData\Roaming\npm\appium.cmd

6、appium运行

在控制台输入命令 appium即可启动appium服务,appium -v查看版本

C:\Users\Ahui>appium -v

1.7.2

7、安装Appium-desktop

下载地址:https://github.com/appium/appium-desktop/releases

用例及脚本设计

自动化测试流程其实跟手工测试流程差不太多,要先编写测试用例,只是被叫作自动化测试用例而已。先设计好自动化测试用例,再严格根据设计完成的测试用例编写测试脚本,这是一种规律、一个过程。此过程产出物为自动化测试用例。 自动化测试用例设计和手工测试用例设计是有明显区别的,手工测试用例是从无到有的过程,而自动化测试用例不是的。自动化测试用例是有参考物的,它就是手工测试用例。它有时候可以直接拿来用、有时候需要稍加修改,在此把整个自动化测试用例设计过程分为 3 步: 筛选手工测试用例的过程。 转换手工测试用例的过程。一般转换要素无非两种,一种就是测试用例的格式和规则,另一种就是优化自动化测试业务流程。自动化测试业务流程和手工测。试业务流程还是有一定区别的,自动化测试业务流程更精简、严格。 新增&补充自动化测试用例的过程。 设计样例如下所示:

用例编号功能模块用例标题预置条件测试步骤预期结果优先级实际结果备注
XiaoU03购物车添加商品网络正常,已登录1、进入商品详情页2、点击加入购物车按钮3、选择默认数量为4、进入购物车模块查看商品是否被添加商品被添加,数量为1pass

通过可行性分析和用例设计后,接下来需要做一个demo ,等待 demo 完成后,可以再次通过分析自动化测试工作能否顺利地开展下去,因为 demo 已经是一个实体案例,所以,可以完全通过透析 demo 来发现是否存在技术上的致命问题。通常在 demo 完成之后,有经验的自动化测试工程师或组长就能对这个项目的自动化测试工作有一个大体的把握了。一旦通过了抽样 demo 分析,自动化测试就可以展开了。关于 demo 的选取,一般直接选择冒烟测试用例(大冒烟)写成测试脚本后执行,检查脚本是否能够成功运行通过,已设计的测试点是否全部执行到即可。 设计样例如下所示:

import unittest

from time import sleep

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

class TianyeLoginOut(unittest.TestCase):

   def setUp(self):

   self.driver = webdriver.Firefox()

   self.driver.implicitly_wait(30)

   self.driver.get("http://bbs.tianya.cn/")

测试框架

UnitTest框架是专门用来进行执行代码测试的框架,具有以下功能:

1) 能够组织多个用例去执行

2) 提供丰富的断言方法(稍后讲解)

3) 提供丰富的日志与测试结果

UnitTest核心要素包括:

1)TestCase

2)TestSuite

3)TextTestRunner

4)Fixture

执行测试

测试脚本的执行主要包含如下内容:

  • 测试环境的管理配置
  • 测试脚本配置
  • 测试脚本的执行
  • 测试异常中断处理和恢复

自动生成测试报告

执行完自动化测试脚本后,自动生成一份测试报告。