前言
在开始话题之前,先讲述一个故事。
同学A:客户端代码层开一个接口,将数据传给前端,前端接收到之后处理数据,B同学,这种接口该怎么测试呀?
同学B:这块目前没有太好的办法,只能通过单元测试验证。
同学A:可是我不会写代码呀,另外项目周期这么紧张,也来不及进行单元测试。
同学B:以往就是提醒一下开发,记得在调用接口时加保护,以免出现接口调用出现崩溃的情况,然后我们记个风险,因为组内会代码的同学太少了。
同学A:但是一切风险皆bug呀!
同学B:没办法,没有太好的办法,现在只能这么办。
同学A:…………………
正文
上述的故事或多或少会在测试工作中遇到,这种情况下,我们真的无计可施了吗?答案肯定的是“NO”,今天就给大家介绍一种适用的测试方法,文件重定向法。
文件重定向法
实现原理:
由正常的的逻辑调用(红色曲线),改为从测试服务器访问数据(蓝色曲线)。
部署方法:
第一步:部署一台测试服务器,找一款可以访问服务器的软件,例如:WinSCP;
第二步:前端预先将客户端返回的数据格式以及数据字段保存在本地,例如:test.json;
第三步:测试同学根据需要修改test.json内的数据信息,然后将test.json部署在测试服务器(名称以及路径一旦确定不要修改,避免前端无法找到数据);
第四步:前端将访问客户端的接口改为访问test.json地址,读取test.json数据;
适用范围:
代码层的接口数据输入输出,不区分web端or移动端;
收益和成本:
根据我之前从事的一个项目为例,列举一下该方法的成本,收益,风险以及不足。
成本:
成本一:测试需要了解客户端接口返回的数据信息(成本可以忽略,因为无论是否需要测试,都需要了解的环节);
成本二:前端负责在代码层调用客户端接口时,转向访问测试数据地址,工作量20分钟;
收益:
收益一:前端调用客户端接口测试覆盖率由0%~100%;
收益二:可以验证接口调用时机是否正确;以及对于数据处理是否正常,例如:此次项目实践发现bug三处;
①前端调用客户端接口,存在刷新H5页面不调用的问题;
②对于客户端传来的null值,显示undefined,没有显示默认H5页面;
③前端调用客户端接口,在页面加载完成之后才调用接口,时机较晚,导致概率性无法正确获取到客户端传来的数据。
收益三:测试人员不需要编写代码,普通测试人员都可上手操作;
由于测试数据地址是在前端调用客户端接口时访问,因此可以根据是否访问测试数据地址时机以及次数,验证前端调用客户端接口是否存在问题;
风险以及不足:
① 涉及到前端增加测试代码,因此在上线前一定要注释掉或者摘除掉,如果有可能,可以做成模块化;
总结
此外,小编还写过类似的文章,链接如下:
https://mp.weixin.qq.com/s/JRwwwPX0kUtSQ576X0lnUA
欢迎大家留言,有不足之处,请批评指正~
搜狗测试微信号:Qa_xiaoming
搜狗测试QQ粉丝群:459645679