问题
很多测试是和后台代码逻辑相关的,比如:
接口测试
接口文档里面包含了接口的url、用途、一些上行参数和下行参数的描述信息。
但是要想知道这些参数取值的来龙去脉,还是要回归到后台项目代码中,我们可以对上行参数和下行参数是如何处理和生成的有一个全面的了解。
一些功能需求的测试
我们拿到需求,根据需求文档、交互视觉设计文档来编写测试用例。
在测试的过程中,需要了解后台功能是如何实现的。例如一些wap页发送的请求,我们通过抓包捕捉到请求的url,通过请求的url在后台找到相应的接口代码,最终还是会落到接口的逻辑实现上。
只有清楚了后台代码的逻辑,才能更好的设计测试用例。这就是针对后台的一些测试。
和前端测试不同,前端的代码我们通过浏览器就可以看到。后台的代码更要求我们能对IDE熟练使用并掌握如何查看代码逻辑的能力。
任何的测试涉及到后台,最终无非是落到接口的测试上。
方法
步骤:
1. 通过抓包可以得到接口的基本信息,通过url中的内容我们可以在后台项目代码里找到相应的Controller,方便我们查看接口的逻辑;
2. 对于上行参数的处理一般有对应的拦截器,我们可以在对应的web.xml文件中查到相应url段的过滤器名称,然后查到对应的过滤器;
3. 在过滤器里我们可以看到对上行参数的预处理逻辑(包括对一些加密参数的解密逻辑),从而找到和Controller里面的入参的对应关系。
一些关键点:
1. 因为我们抓包抓到的上行参数多是经过拦截器预处理后再传给Controller处理的,所以Controller中的入参名称和我们抓包抓到的上行参数名称可能会不同。
2. 在拦截器中我们通过request.getParameter方法获取到上行参数,然后通过request.setAttribute方法设置处理后的上行参数并传递给对应的Controller作为入参。
需要掌握的技术
1. Eclipse/Intellij(IDE)中按关键字、方法名、文件名进行查找;
2. 了解SpringMVC框架结构,例如web.xml等文件的作用;
3. 对后台代码逻辑的查看能力,知道方法的调用与被调用关系。能够理清代码逻辑;
4. 能够在理解代码逻辑的基础上,知道在哪里打log排查问题;
5. 可以通过SecureCRT等远程软件在后台服务器指定项目路径下查看log输出;
6. 能够通过Fiddler/Charles/Mitxproxy等代理抓包工具对http/https类型的网络请求(PC/移动端)进行抓包、拦截、改包;
7. 对于需要加密和解密的参数能够根据后台项目代码中的加密解密逻辑进行提取使用并制作相应工具;
8. Git工具使用(创建、合并、拉取、推送分支),及时将开发修改后的开发分支代码合并到测试分支并部署到测试环境进行测试。