androidapp自动化测试框架自动化测试框架Appium资料整理资料整理
1 自动化测试
1.1 自动化测试简介
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。从广义上来讲,一切通过工具(程序)的方式来代替或辅
助手工测试的行为都可以看做自动化测试。从狭义上来讲,自动化测试就是通过工具记录或编写脚本的方式模拟手工测试的过
程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证。
1.2 自动化测试的优点
1)提高效率:通过运行自动化测试脚本,就可以在夜间、午休等时间进行测试用例回归,实现无人值守测试,大大提高了测
试效率。
2)避免重复工作:每发布一个新的版本,其中大部分功能和界面都和上一个版本相似或完全相同,这部分功能就可以用自动
化测试,避免人工重复劳动。
3)避免人为出错:例如忘了执行某些用例,用例执行步骤出错,输入数据出错等。
4)保证每次测试的一致性和可重复性:由于每次自动化测试运行的脚本是相同的,所以每次执行的测试具有一致性,这一点
手工测试是很难做到的;而且,由于自动化测试的一致性,很容易发现被测软件的任何改变。
5)节省人力资源:减少人工,降低成本。
6)克服手工测试的局限性:许多死锁、资源冲突、多线程等有关的问题 ,通过手工测试很难捕捉到;系统压力、性能测试,
以及需要模拟大数据或大并发用户等各种测试场景,很难通过手工测试执行;系统可靠性测试,需要模拟系统长时间运行,以
验证系统能否稳定运行,难以通过手工测试执行。
1.3 哪些测试需要用自动化测试解决
并不是所有项目都适合自动化测试,适合自动化测试的项目一般具有如下特点:首先项目周期要长,需求不会频繁变更;其次
系统中多数对象要可以被识别。
你不能指望自动化测试去帮你发现新的bug,自动化测试本身是不具备想象力的(相对于手工测试)。它的优势在于反复迭
代,它的价值产出在于长期的回归测试,以保证被测产品在版本更新时的稳定性。
一般来说,具备如下特点的测试可以考虑使用自动化测试:
1.大量机械的、重复性的回归测试;
2.结果的正确性不依赖主观判断的测试;
3.需要模拟大量数据、大量并发量的测试;
4.需要不间断执行的测试;
5.需要短时间内完成的大量测试用例执行(比如完整的功能回归测试);
测试趋势应该就是往自动化测试去发展,这个方向是对的,但现实中往往会因为自动化框架的限制等原因,造成问题的漏测,
因此适当的进行手工测试也是很有必要的。
2 自动化测试工具
2.1 移动端自动化测试工具的比较
比较流行的移动应用自动化测试工具的比较: