缘起
在听了大佬们布道之后,我一直在纠结要不要写这个内容,两个原因吧,第一个是感觉这个前期投入太多,产出都在后期。第二个原因,对绝大部分中小厂来说,可能还是测试小哥点点点容易。后来为啥决定写了,还是想着造福大家,回馈社区,大家不管用不用的上,增长点知识也是好的。
前端搞测试的意义
这里有两个问题,测试该不该由前端来搞呢?前端如何合理搞测试?其实小编观点,前端搞测试是可以的,测试同学可以轻松点,现在也有很多前端测试工具,可以使用。那么前端同学搞了测试,是不是意味着测试同学就被卷了呢,答案是不一定。前端同学做了很多测试的活,但是有些活的必须要测试同学处理的,所以前端搞测试,最多只是公司里面测试同学的人数减少,但是不能完全替代测试同学。并且前端搞测试,是前端同学对自己代码负责的另外一种表现。小编依稀记得,最早工作的公司,那里的没有测试的,开发,产品,运营同学就是测试,因为很多小厂预算有限,可能没有测试岗位,正如以前的一句话,人人都是产品经理,也可以是人人都是简单测试。换而言之,用户都可以看成测试。
第二个问题,前端如何合理搞测试。大家都知道开发同学开发的时候,其实是有盲区的,很难方方面面俱到。这个时候,可能需要测试同学来帮开发同学找出问题根源。我们再来说说测试种类,大致可以分为,单元测试、接口测试、UI测试这三类。开发同学如果有时间精力的情况下,可以做做单元测试,确保代码覆盖率。接口测试这个么,其实一般是后端同学完成的,也可以交给测试同学。最后就是ui测试了,这个就是测试图像化界面中的流程和功能了,也就是我们熟悉的ui同学经常做的点点点测试。
再简单聊下接口测试:
- 功能测试:接口是否按照设计文档实现
- 逻辑业务测试:接口之间调用先后顺序,是否会对逻辑业务产生影响
- 异常:传参异常,数据异常
- 接口性能:接口单次调用的响应时间、返回数据量等
- 安全性测试:敏感信息是否加密,唯一识别码等测试
关于自动化测试
有了上面的概念普及,我们才能聊自动化测试。单元测试、接口测试、UI测试其实都可以使用自动化测试,自动化测试其实也可以节省测试资源,减少企业成本,提高效率。
自动化测试工具有很多,简单普及下吧:
- appium:mobile和app使用
- MiniTest:用来测试小程序和小游戏
- AirTest IDE: Cross platform UI automation IDE
- cyPress.io
- Selenium
- Playwright
- httpRunner:用于接口测试
开发同学通过写脚本测试,等到积累了大量的脚本实例后,后期通过复用积累下来的实例,开发能在开发阶段发现自己代码漏洞,节省测试资源,甚至赋能测试。
智能遍历测试
手工测试,也就是点点点,大家会觉得浪费测试资源,自动化测试,除了能积累测试化用例,后期产生大量的价值外,大家可能觉得前期搭建和中后期维护需要大量的时候,觉得麻烦。那么大家来看看智能遍历测试吧。
智能遍历测试有自动化测试的优点,除了前期搭建学习费点时间,后面完全可以积累自动化模型,也不需要维护代码,简单易用。
智能遍历工具:
- monkey
- 百度改造的smart_monkey
- 腾讯的newmonkey
- Android App Crawler
- appcrawler
- macaca/nosmoke
- fastbot
如何提高效率
前端如何做,才能提高效率?不能因为前端来搞这个,降低了企业的整体效率。小编简单总结了下:
- 图片diff比较,简单来说就是ui测试中,把同一路由下,同一页面两个版本比较,看看哪些地方不同,再按照不同的地方进行专门测试,减少测试同学的工作量。
- 造号工具,这点其实大佬讲的很好,因为要模拟很多场景,测试同学往往是手动改账号内容,那么如果通过造号工具,制造一堆账号,是不是大量的节省了测试同学的时间。
- mock数据,链路拦截,这个是用于接口测试的,具体可以参考axios的拦截器
- 自定义手写eslint插件,这个其实是为了保证公司代码的规范性和增加一些自己的规则,也算是减少修改代码,赋能测试吧。
尾声
当很多人还在点点点的时候,少部分人以及在玩自动化测试了,更多的一小戳人在以及开始玩智能遍历了。这就是技术领域不同人的态度和区别,你把工作当成工作,那么只能随波逐流,你想学习进步,那么你可以比大部分人走的远,你想做出成就,那么你就有机会成为那一小戳人。
美好的科普时光总是这么短暂,我们下期见!