提高测试效率:手写自动化测试工具(chrome扩展)

在web测试过程中,由于前端是很容易就被绕过的,因此我们在测试的时候,除了关注前端的功能外,还需要关注后端的接口功能。针对于接口的测试,可以使用一些第三方工具设置好参数发送请求,但是对于一些需要登录的页面,使用第三方工具就会面临权限问题,虽然可以通过一些手段来解决(例如寻找到登录成功的cookie进行设置),但是还是有诸多不便,尤其是对于自动化测试而言,登录更是一个较为头疼的问题。

既然web系统的前端是在浏览器中,那么是否可以直接使用浏览器的运行环境来辅助进行测试呢?(注:本文只针对chrome浏览器)

调研

首先我们进行一些简单的调研。在chrome浏览器中,按F12可以进入开发者模式,如下图。

提高测试效率:手写自动化测试工具(chrome扩展)

在控制台(console)中,可以直接用JS进行发送请求、操作页面等等,更重要的是控制台中可以保持账号的登陆状态,如果账号已经登陆,那么在控制台中发送请求,就无需再登陆。

基于此,我们完全可以自己在浏览器控制台中构造请求,直接调用后端接口进行测试,这样就完全绕过了前端的验证,也无需进行登陆。下图是一个请求成功的例子。


提高测试效率:手写自动化测试工具(chrome扩展)

虽然我们已经能成功的绕过前端进行测试,但是每次都在控制台里写一堆JS代码,使用起来着实困难,因此我们需要将此方案进行工具化。带着这样的疑问,很自然的就想到了浏览器插件。

工具化

我们可以将发送请求的功能用JS封装起来,再用浏览器插件构建一个UI,用于接受用户的输入(URI和参数)。接收到用户输入后,执行请求即可。

这样一个简单的请求工具就已经完成了,在测试的时候,我们完全可以使用这个工具来绕过前端进行测试,如下图。

提高测试效率:手写自动化测试工具(chrome扩展)

我们甚至可以再进一步,在这个工具的基础上对UI和功能进行扩展,使之成为一个自动化测试工具。

自动化

例如,我们可以将URL和参数等数据提取出去,按照一定的格式放到外部文本中,插件中增加解析数据的逻辑,再封装一些结果检查的逻辑工具,以关键字的形式暴露给外部。


提高测试效率:手写自动化测试工具(chrome扩展)

这样就形成了基于数据驱动的自动化测试工具。用例文件中保存测试数据和逻辑,插件就是用例执行器。

当我们要进行测试的时候,直接通过插件的UI将测试文件进行上传,执行测试即可。


提高测试效率:手写自动化测试工具(chrome扩展)

如果有条件,我们甚至可以让测试插件与自己的测试平台打通,测试平台可以维护用例,插件动态的从测试平台获取用例。


提高测试效率:手写自动化测试工具(chrome扩展)


推广

如果我们的UI和易用性做得足够好,完全可以将此工具推荐给研发同事。

可以试想,在研发接口详细设计文档出来后,我们就可以根据此文档进行用例编写。研发人员在完成开发后,可以通过测试工具,结合我们编写的用例,进行自测(用例维护)。自测通过的用例可以直接保存到测试平台,这部分用例就已经形成了有效的自动化测试用例,研发提测后,测试人员只需要对用例进行检查和维护即可。

这样可以将测试的工作大大提前,同时也让研发人员尽可能的参与到测试过程中,会在一定程度上提升测试效率。当然这只是理论上的想法,实际还得根据各公司的情况再进行定夺。

上文中只是做了一个大概思路的讲解,并没有介绍如何开发浏览器插件,奔着学习和实践的态度,也完成了一个demo,感兴趣的朋友可以一起学习探讨。


分享到:


相關文章: