自动化测试入门知识

自动化测试,作为软件测试的一种提高工作效率的方式,是一种由机器代替人工执行测试行为的过程。由于接触自动化测试也有一段时间了,就想从整体上来谈一谈自动化测试的学习心得:

  • 自动化测试与功能测试

自动化测试从根本上并没有脱离功能测试而存在,它依托于功能测试的基础实现。

从自动化的产生原因看,既然自动化测试是为了提高执行效率,由机器去替代人力执行测试用例,那么对于自动化测试用例是从功能测试的测试用例中挑选具备自动化条件,可以进行自动化的用例,将其以代码的形式固定下来并定时执行代码也变得理所当然。

从使用场景来看,自动化测试的实行通常是在功能测试模块相对稳定、改动频率较小时才进行的,且引入自动化测试的项目周期都比较长,若是在只有一两个月的项目中使用自动化,最终只会浪费人力、时间和精力,其效果还不如纯手工来得明显。同样的,对于变动非常频繁(如:UI自动化的页面样式、接口自动化的接口参数及地址)的项目而言,使用自动化的的和成本也会是极高的,而当实施自动化的投入产出比过高,那么自动化测试不仅没有意义,反而会给项目的实施带来负担。

  • 自动化测试的优势

1.方便进行回归测试,当软件的版本发布比较频繁的时候,自动化的效果很明显。

2.自动处理原本烦琐、重复的任务,提高测试的准确性和测试人员的积极性。

3.具有复用性和一致性,可以在不同的版本上重复运行,保障测试内容的一致性。

 

  • 自动化测试的分类

自动化测试从测试对象可以分为功能测试自动化、性能测试自动化和安全测试自动化等。

功能测试自动化,功能测试自动化常见的是UI和接口方面自动化测试,UI自动化也可以分为对APP的UI自动化和WEB端的UI自动化,接口自动化的区分针对不同的协议,如HTTP、RPC、WebService,基于HTTP协议开发的接口现在应用是最为广泛的,这类API使用起来简单明了,因为它是轻量级的、跨平台、跨语言的,但凡是第三方提供的API都会有HTTP版本的接口。

RESTful API也是基于HTTP协议的,只不过RESTful它并不是一种规范,它是一种设计准则,用不同的HTTP动词(GET、POST、DELETE、PUT等)来表达不同的请求。

       性能测试自动化,主要是基于一些工具的,目前了解的性能测试方法有:apache的ab、Jmeter、LoadRunner、自己开发的工具,对于这几种性能测试方案,目前个人了解比较多的是Jmeter,功能强大而且开源免费,网上见到最多的也就是它了,其他的不太了解,就不介绍了。

  • 自动化工具的选取(以功能的自动化为例)

对于UI 界面的自动化来说,首先要根据测试对象是APP还是web页面做区分,先说对APP做自动化,只有native 界面的APP,使用uiautomator,因为uiautomator是google提供的测试框架,执行速度快,且jar包在sdk中就能找到,所以很方便使用;若包含webView界面,选择使用appium会更好,appium的支持更全面。对于web的UI进行自动化主要使用selenium。

对于接口自动化而言,有postman、jmeter等工具,还有使用各种开发语言自己搭建框架定制, postman 适合于接口之间关联性不强的情况,jmeter比 postman强大,但没试过用它做自动化。

  • 就写这些吧,之后有时间再补充。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章