Java后台测试技巧
问题
很多测试是和后台代码逻辑相关的,比如:
接口测试
接口文档里面包含了接口的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工具使用(创建、合并、拉取、推送分支),及时将开发修改后的开发分支代码合并到测试分支并部署到测试环境进行测试。
Java后台测试技巧的更多相关文章
- HTML5+js页面传值给Java后台的小技巧
页面传值小技巧 平常我们在做的web项目,一般一个HTML页面上会有好几个步骤,step_num①,step_num②,step_num③,一般先显示step_num①,根据跳转条件显示step_nu ...
- [翻译]写给精明Java开发者的测试技巧
我们都会为我们的代码编写测试,不是吗?毫无疑问,我知道这个问题的答案可能会从 “当然,但你知道怎样才能避免写测试吗?” 到 “必须的!我爱测试”都有.接下来我会给你几个小建议,它们可以让你编写测试变得 ...
- 写给精明Java开发者的测试技巧
我们都会为我们的代码编写测试,不是吗?毫无疑问,我知道这个问题的答案可能会从 “当然,但你知道怎样才能避免写测试吗?” 到 “必须的!我爱测试”都有.接下来我会给你几个小建议,它们可以让你编写测试变得 ...
- 极光推送-Java后台实现方式一:Http API
Java后台实现极光推送有两种方式,一种是使用极光推送官方提供的推送请求API:https://api.jpush.cn/v3/push,另一种则是使用官方提供的第三方Java APIjar包,这里先 ...
- 极光推送经验之谈-Java后台服务器实现极光推送的两种实现方式
原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/6439313.html Java后台实现极光推送有两种方式,一种是使用极光推送官方提供的推送请 ...
- fastJson java后台转换json格式数据
什么事JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...
- IOS 基于APNS消息推送原理与实现(JAVA后台)
Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider. APNS 是Apple Pu ...
- Java 后台创建word 文档
---恢复内容开始--- Java 后台创建 word 文档 自己总结 网上查阅的文档 分享POI 教程地址:http://www.tuicool.com/articles/emqaEf6 方式一. ...
- Java阶段性测试--知识点:数组,面向对象,集合、线程,IO流
#Java基础测试 涉及知识点:数组,面向对象,重载,重写,继承,集合,排序,线程,文件流 一.多项选择题(可能是单选,也可能是多选) 1.下列标识符命名不合法的是( D ). A.$_Name ...
随机推荐
- 那些令人喷饭的代码注释:仅以此代码献给...it's realy ?
程序源代码中的注释经常是一个卧虎藏龙的地方,有人就很喜欢写幽默搞笑的注释内容.解释代码含义的同时,也带给人轻松神经的机会,确实是很有意思的风格,来看看这一辑国外某公司产品中的注释. 注意:看的时候严禁 ...
- 《JAVA与模式》之装修者模式
装饰者模式 动态地将责任附加到对象上.若要扩展功能,装饰者提供了比继承更有弹性的替代方案. 具体被装饰者和抽象装饰类都继承于抽象被装饰者类,继承的是类型,而不是行为.行为来自装饰者和基础组件,或与其他 ...
- mysql使用GROUP BY分组实现取前N条记录的方法
MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY分组取前N条记录实现方法. 这是测试表(也不知道 ...
- ios开发中用过的一些外部库总结 cocoapods list
下面几个库是在之前的一个ios app开发中使用过的一些外部库: 1. zbar :2. shakebox :3. processbar :4. tableviewcontroller :新版的sta ...
- Windows8.1远程桌面时提示凭据不工作的解决方案
本人两台电脑都是win8.1.首先确认以下三点: 1.密码没有错 2.用户连接没有达到上线(只有我一个人尝试连) 3.该用户已开启远程连接 此时还说凭据不工作的原因是域的问题,因为mstsc默认使用M ...
- Google Mesa概览
Google Mesa的文章:https://research.google.com/pubs/pub42851.html https://gigaom.com/2014/08/07/google- ...
- javaweb可部署目录结构
webApp //项目名称 -META-INF --MANIFEST.MF -WEB-INF --classes //编译class文件 --lib //依赖jar --web.xml -ind ...
- HTML常用模板:用DIV实现网站首页、后台管理首页(整理)
1. 说明 网上下载的模板,用DIV实现页面模块之间的分隔(不是用frameset/frame).可以选择有无header/menu/footer,主体如何等等.删除了几个我认为重复的.重新命名而已. ...
- Android开发之API应用指南
原文:http://android.eoe.cn/topic/android_sdk 编辑流程 这里主要是和Android技术相关的开发指南,很多都是来源于官方的API Guides( http:// ...
- [svc]nginx限制客户端上传附件的大小
300 行 python 代码的轻量级 HTTPServer 实现文件上传下载 系统环境 [root@n1 conf]# cat /etc/redhat-release CentOS Linux re ...