自动化测试学习笔记

D1

一、基础

应用自动化的项目,具备:
1)需求变更有计划性,并且频率不高;
2)项目周期长,资源丰富;
3)脚本重复利用率;
4)代码规范。

项目中哪些部分适合自动化:
普遍存在但不正确的说法:自动化更适合回归和API测试,手工适合验收和GUI测试。
正确的:业务逻辑代码适合手工测试,基础性代码适合自动化测试。
手工测试人员成为领域专家,用大脑作为最强力的测试工具来完成复杂的业务逻辑;
自动化测试底层细节,如错误返回值、错误码、异常和内存处理,基础的业务。

自动化测试工具的特征:
1)支持脚本化语言,便于用例编写;
2)对程序界面对象的识别能力;
3)支持函数可重用;
4)支持外部函数库;
5)抽象层:将程序界面中的对象映射成逻辑对象;
6)支持数据驱动测试(变量参数化);
7)错误处理;
8)调试器(Debugger);
9)源代码管理;
10)支持脚本的命令行方式。

 

二、工具

常用的自动化测试工具:
1)QTP:录制;VBScript;
2)Selenium:
  价格:开源;
  适用:1.0是FireFox的插件;2.0也只支持浏览器,不支持其他;
  功能:录制回放成功率低;脚本Java、Python。
  框架处理能力:
    编程实现数据驱动,更灵活;
    并发性;
    组件支持如Flash,内嵌h5对象等较差;
    对象识别:多种对象识别接口;
    支持平台:多种语言,可跨平台;
    脚本创建。

其他工具:
1)UFT:Unified Functional Testing,QTP的新版;
2)RFT:IBM Rational Fuctional Tester,IBM适用于功能回归测试的自动化测试工具;
3)Win Runner:HP收购后基本消失,只支持C语言;
4)Rational Robot:IBM, SQABasic语言、表驱动;
5)Watir:ruby、轻量级;缺乏支撑;

手机自动化:
1)MonkeyRunner:Android,与selenium思想很类似,只是多了app的模拟器;
2)Robotium:Android,可以把测试生成apk文件,安装到手机上;

新型的自动化测试工具:
Sikuli:MIT的研究团队发布的新型图形化编程技术,基于Jython脚本语言和集成开发环境,通过屏幕截图编写用例。

为什么选择Selenium(Webdriver)?
1)开源免费;
2)使用灵活、简单;
4)后期用例易于维护;
5)支持多种语言;
6)容易与单元测试框架结合,与Jenkins、Maven等对接;
7)可支持多种浏览器,支持远程启动其他服务器;
8)高度复用性;
9)代码可自主掌控,对于搭建框架、平台等有不可替代的优势。

 

三、自动化测试和测试自动化


什么是测试自动化?
让测试过程脱离人工。
目的:控制成本和质量,如回溯质量、减少测试周期。

 

什么是自动化测试?
将测试执行部分或全部交由机器执行的一种测试。
目的:测试执行不需要人的参与;但如果小规模应用会比手工测试昂贵的多。
所以可认为自动化测试是测试自动化的一部分。

 

测试自动化工程师:专注于测试代码的开发和测试结果的分析,追求高质量而忽略成本。
自动化测试工程师:比较专注于测试工具的研发,重视成本,目的是减少工作量,尽可能将重复、有规律的工作代码化、自动化。

全栈测试工程师:偏向于测试自动化,在各种测试方向都做到自动化。

 

自动化测试的准则:
1)不是简单的将测试用例代码化,不能为了自动化测试而做自动化测试;
2)用例必须能够复用;
3)自动化测试的规模要够大:测试点够多(用例够多、时间够长)或测试的产品够多,才能体现自动化测试的优势。

 

测试自动化的准则:
1)减少除了自动化测试工具研发部门外其他所有测试部门的人力成本;
2)提高测试质量:不仅包括测试执行的质量,还包括测试统计的质量、数据回溯质量等。
这些质量提升可以帮助测试团队修正测试方法,而不把时间浪费在数据统计、分析中。
3)缩短时间。某一项工作自动化后,所需时间至少比人工做时间要短,或者可在非工作时间内进行,做到无需人员监守。

 

D2

四、自动化测试的三个层次


1. 基本脚本设计阶段
偏重自动化测试


2. 框架脚本设计阶段
分两种:数据驱动和关键字驱动
测试自动化的第一步


3. 平台设计阶段
平台需满足所有需求并易用,不仅考虑脚本、分层思想、客户的易用性、脚本搭建、数据库等

 

 

五、自动化测试环境准备


1. 浏览器(开发者工具使用)
Chrome,FireFox, IE
2. Selenium IDE
FireFox的插件
3. Java环境
4. Eclipse
5. WebDriver jar包
6. 单元测试框架 Testing

注:中间webdriver应用部分未学习

 

D3

三十三、自动化测试框架

自动化测试要解决的问题:
1. 框架:可复用;
2. 数据:可参数化;
3. 维护:成本低;
4. 执行:定时执行;jenkins:持续集成,定时执行,调用ant;
5. 报告:自动、可视;junit报告模式差,testng报告方式两种:xslt、reportng;
6. 兼容性:多种机器环境里测试;远程;用grid发送到不同机器;
7. 自动编译、打包:用ant调用testng文件

(一) 外围架构搭建

由多个子系统或子框架共同构建出来的,解决了4-7
推荐的架构:
linux crontab/定时任务/jenkins/hudson+maven/ant+junit/testng+webdriver+xslt/reportng+grid

(二)内在框架设计

解决1-3

1. 框架:复用性;清晰度(易懂);——体现在框架分层
2. 数据:可维护性;——数据驱动

自动化框架驱动方式:
1)数据驱动:输入参数放入统一文件中管理;
2)关键字驱动:更适合用于测试平台。

 

四十三、关键字驱动思想

将过程行为、输入数据关键字化,保存在用例中

 

四十四、自动化测试平台设计思路

(一)针对完全没有自动化能力的人

基础用户,重点关注执行


1)纯关键字驱动
2)关键字放在数据库保存
3)行为动作采用映射方式

框架:自动化执行(jenkins/计划任务)+打包(ant/maven)+执行(testng+wd+grid)+报告(xlst+mail)

分层模式:
前端只用来进行关键字录入,page element action task case suite;
后端进行上面的框架管理。

(二)针对可以进行自动化设计的人

专业用户,重点关注监控、分析


1)自动化测试平台
2)代码分发、节点的实时监控、日志警报系统

在自动化功能测试中,关注运行结果是否成功,实时监控不是很重要;对于性能测试,实时监控更重要。根据实际情况选择。

 

注:实例略,完成

posted @ 2020-09-02 13:22  workingdiary  阅读(237)  评论(0)    收藏  举报