对接口自动化测试的几点思考(一)

在自动化的测试体系中,目前应用的比较多,包含了UI自动化测试和接口自动化测试,在UI的自动化测试中使用最广泛的是Selenium框架,移动端是Appium,接口自动化测试方面选择性比较多。一个测试团队在技术选型上在我看来相当的重要,因为一个技术的选择,它决定了研发效率,测试的工作主要是两点,第一点是产品质量管理,关于产品质量部分,可以通过测试策略和测试分析得出什么应该测试,什么不应该测试,当然这是下一个测试技术发展的方向,不在今天的讨论范围内。第二点是工程效率,在测试这边就是测试效率。那么如何来提高测试效率了?

UI自动化测试有它存在的必然价值和意义,但是在互联网时代和物联网的快速迭代,快速快捷的开发模式中,唯一的不变是变化,那么测试团队如何来应对这个形式,这就值得有的讨论。产品的不断变化,UI的不断调整,产品的快速迭代,UI自动化测试明显跟不上这个节奏,即使使用了页面对象设计模型,但是还是无法满足需求。在测试的金字塔模型中,UI自动化测试的比例实际上并不高,见如下的截图:

在这个模型中,越往下比例会占的越高,也就是说在一个产品测试中,单元测试比例是最高的,依次是接口测试和UI自动化测试。基于现实的考虑,特别是在一个公司中,开发语言特别的多,比如本人所在的公司就有go,python,php等语言开发,当然还有js,对于测试来说做单元测试不是很理想,那么就只有接口测试了。所以交互层的测试是需要投入的,但是尽量投入比较少的时间去测试,把更多的时间放在应用测的测试。

目前是开发模式基本是前后端分离,也要求测试掌握接口测试的知识,掌握接口测试的知识不是单纯的说会一点抓包工具,会个postman就说可以会接测试,首先需要了解HTTP协议的相关知识,以及搞明白什么是cookie,什么是session和什么是token,以及cookie,session,token之间的区别是什么?明白客户端与服务器之间的请求流程是什么?这些知识点都是做接口自动化测试是必须要掌握的知识点。

HTTP的协议是基于应用层的协议,它不需要考虑网络传输层的事情,另外HTTP协议是无状态的协议,也就导致了cook了技术的发展。当打开google后,返回了google的首页,或者说客户端发送请求给服务端,服务端响应回复给客户端,这个请求的过程具体为:

具体可描述为:

1、客户端与服务端之间建立TCP的连接;

2、发送HTTP请求,也就是客户端发送Request请求;

3、返回HTTP结果,也就是说服务端Response回复客户端;

4、关闭TCP的连接。

在快速迭代又要求高质量产品的一个环境中,测试只能快,要么就是无休止的加班,但是即使这样也不一定产品质量就是让领导满意的。而接口自动化测试也是可以满足这个趋势,另外在整个接口层开发改东的相对来说比较少,变化少,可以更加高效的投入时间在应用层的测试,少投入时间去测试交互层。

如您对我写的内容感兴趣,扫描如下二维码关注本人的微信公众号:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180704G076SL00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券