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 ...
随机推荐
- 搭建HBase+thrift+php环境
http://www.beauty-soft.net/blog/ceiba/hadoop/2013-05-19/644.html http://www.360doc.com/content/11/07 ...
- 细说PHP中strlen和mb_strlen的区别(转)
在PHP中,strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别.下面通过例子,讲解这两者之间的区别. 先看例子: <?php // ...
- 【Oracle】Oracle 的过程化SQL(PLSQL)中NULL值的处理
下面是NULL的几个注意点: 1.NULL值既不是空格也不是0. 2.给表插入值的时候,如果没有给列指定列值,则默认为NULL. 3.当算术表达式里包含NULL值时,其计算结果也是NULL值. 这时候 ...
- 关于tensorboard启动问题
我在学习过程中遇到了tensorboard无法启动的问题. 按照网上的教程,我无法正常启动tensorboard,全过程没有报错,但是打开tensorboard显示 No dashboards are ...
- WAMP 默认mysql密码修改
WAMP安装好后,mysql密码是为空的,那么要如何修改呢?其实很简单,通过几条指令就行了,下面我就一步步来操作. 首先,通过WAMP打开mysql控制台. 提示输入密码,因为现在是空,所以直接按回车 ...
- CommonView for wifi抓包破解WPA无线网络
运行环境:win8 64位+intel 5100n网卡 步骤1:下载CommonView完全破解版,非破解版只有跑10分钟 http://www.nlver.cn/soft/7305.html 步骤2 ...
- Datagrid分页、排序、删除代码
<%@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="fal ...
- Android开发中无处不在的设计模式——动态代理模式
继续更新设计模式系列.写这个模式的主要原因是近期看到了动态代理的代码. 先来回想一下前5个模式: - Android开发中无处不在的设计模式--单例模式 - Android开发中无处不在的设计模式-- ...
- centos 7安装cppman
cppman是一个在命令行查询c和c++语法及标准库函数的工具,非常好用,python3编写,记录一下安装过程: yum update yum install python34 yum install ...
- 我的Eclipse设置
1.默认编码改成:UTF-8(在老项目里设置此项可能导致java源码文件注释显示乱码!可以手工输入GBK三个字母,然后点apply) 2.文件默认打开方式 3.背景颜色(#C0C0C0,RGB(192 ...