一、概述
1、自动化测试相对于手工测试的优点
优化测试速度:可非常快速的运行上万条记录
提高准确性、稳定性:可以不为外界因素干扰,
准确运行测试用例确定性
重现缺陷提高工作效率:一边运行自动化测试,一边准备测试报告
提高技能:可提高测试人员技能,同时提高对测试的兴趣,防止对手工测试感觉枯燥
数据处理方面的优点
测试数据:自动化测试工具可以根据需要,准备大量的测试数据
数据处理:测试结果有时需要再进行相应的数据处理
用例准备:可以使用相关脚本技术准备大量的测试用例
2、自动化测试解决方案概述图
二、选用框架及理由
1、测试服务器:
Django:Web 应用框架
Django 是一个开放源代码的 Web 应用框架,由 Python 写成。采用了 MVC的软件设计模式,即模型 M,视图 V 和控制器 C
自助管理后台,admin interface 是 Django 里比较吸引眼球的一项自带功能,让你几乎不用写一行代码就拥有一个完整的后台管理界面。
强大的 URL 路由配置,Django 让你可以设计出非常优雅的 URL,在 Django里你基本可以跟丑陋的 GET 参数说拜拜。
Python:结合 Django 快速开发 web 测试管理工作站
开发快,语言简洁,入门容易
强大的支持库
社区活跃度高,资料丰富
Apache:部署 Django web 应用
稳定性强
处理高并发能力强
Mysql:储存和管理测试用例
2、测试 PC:
Selenium:web 测试框架,驱动游览器执行用例
Selenium使用灵活,简单,写出的测试案例非常简洁,优美,也易于维护。
Selenium 支持用多种语言编写测试案例,你可以用 java,Python 等各种语言编写用例
容易和测试平台结合
Appium:移动端测试框架,驱动手机执行用例
包括 selenium 的所有优点
支持多系统:Android,IOS
三、自动化阶段进程
阶段一 Selenium IDE:selenium的录制工具,通过录制操作生成脚本
优点: 入门简单,安装之后就可以使用,也能自动生成代码,对无代码功底同仁不失为一个很好的学习范例
缺点: 脚本录制之后只能执行一次完全相同的操作,即使是数据相同,操作完全相同也无法执行第二次
阶段二 手工编写硬代码
优点:手工编写代码较 IDE 生成代码要灵活,可以断言,可以任意增加删除代码
缺点:相同操作代码要重复编写,而已每一行还很长
阶段三 操作方法二次封装
优点:代码量减少
缺点:手工编写繁琐,需要一定脚本基础
阶段四 POM(数据驱动)
从 Excel 中读取数据,代码和数据分离
阶段五 POM(页面对象管理)
从 Excel 中读取数据,代码和测试元素(控件)分离
阶段六 关键字驱动
编写自动化用例时不需要任何代码,全部用中文就可以实现编写完用例,这样公司也不需要自动化开发人员来编写代码,功能测试人员即可自主完成用例编写)
阶段七 自动化管理平台
终极形态:将元素,数据,用例存放到服务器数据库中,执行时动态从数据为中读取数据
元素录入,用例管理,测试报告检索
四、自动化管理平台介绍
主要模块:
基础数据:控件查找方法管理,控件操作动作管理,控件管理
项目用例:项目 - 页面 -用例-步骤,项目,页面,用例,步骤,前置用例
运行及结果:运行结果查看,生成脚本下载
模块介绍:
1、控件查找方法管理:保存控件查找方法,用于与脚本自动生成函数相匹配,此项内容为测试开发人员维护,添加与修改删除需要同步更改脚本自动生成函数进行匹配,一般功能性测试人员只需要进行调用
2、控件操作动作管理:保存控件操作动作,用于与脚本自动生成函数相匹配,此项内容为测试开发人员维护,添加与修改删除需要同步更改脚本自动生成函数进行匹配,一般功能性测试人员只需要进行调用。基本包含了 appium 和 selenium 常见的操作动作,使用中文的方式进行展现。
3、控件管理:使用数据驱动的方式,将元素实体和定义名称进行分离。可以很好的避免开发人员更改了元素实体后需要大量更改脚本中的元素实体。同时将元素实体进行中文命名可视化程度及记忆选择难度大大降低。同时一个控件元素绑定两种实体(安卓和苹果),一个用例可以同时生成两个系统的脚本。
4、项目 - 页面 - 用例 - 步骤:自动化平台的用例管理逻辑,核心内容。
从大到小的关联关系分别为:项目 - 页面 - 用例 - 步骤
他们的关系都是一对多的关系,也就是一个项目下可以有多个页面,以此类推,最小的为步骤就是单个操作动作
5、项目:用例逻辑的最高层,用于存储脚本生成时的基础数据,如选择运行 appium 时执行脚本的测试机,连接数据库的基本信息等等
6、页面:项目下属页面,用于关联项目和用例,避免所有用例都关联到同一个项目下,内容过多,同时在脚本大量生成时用于脚本分文件,目前逻辑为同一页面下的用例生成一个脚本文件
7、用例:用于描述每个用例的测试目的及关联每个步骤,测试概念中的 testcase
用例中内嵌了两个函数一个是脚本生成函数一个是运行函数。将本套系统部署在服务器时,可以直接调用运行或脚本生成函数将组织好的用例进行生成到服务器和运行,如果在项目中设置 appium 的运行地址后可以直接调到测试 PC 所连接的测试机进行测试。
8、步骤:每个 step的操作,其中的操作动作,操作元素,定位方法都是基础数据中配置好的直接进行选取组合
9、前置用例:用例的前置步骤(用例),主要功能是在主用例前可以执行前置用例,一般前置用例都被设置成环境清理或数据准备等动作
10、运行结果:通过平台运行的用例都会生成测试结果,可以在此处进行查看,或下载
11、脚本文件管理:通过平台运行或生成的脚本,都可以在此处进行下载
五、困难和未来规划
1、测试服务器:测试管理工作站页面优化(需要前端开发工程师配合)
2、测试 pc,测试手机的扩充和机房的搭建
3、应用程序端测试管理工作站(exe 文件)
4、完善 ios 脚本生成
5、接口测试整合进入平台中