[本文出自天外归云的博客园]

问题

很多测试是和后台代码逻辑相关的,比如:

接口测试

接口文档里面包含了接口的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后台测试技巧的更多相关文章

  1. HTML5+js页面传值给Java后台的小技巧

    页面传值小技巧 平常我们在做的web项目,一般一个HTML页面上会有好几个步骤,step_num①,step_num②,step_num③,一般先显示step_num①,根据跳转条件显示step_nu ...

  2. [翻译]写给精明Java开发者的测试技巧

    我们都会为我们的代码编写测试,不是吗?毫无疑问,我知道这个问题的答案可能会从 “当然,但你知道怎样才能避免写测试吗?” 到 “必须的!我爱测试”都有.接下来我会给你几个小建议,它们可以让你编写测试变得 ...

  3. 写给精明Java开发者的测试技巧

    我们都会为我们的代码编写测试,不是吗?毫无疑问,我知道这个问题的答案可能会从 “当然,但你知道怎样才能避免写测试吗?” 到 “必须的!我爱测试”都有.接下来我会给你几个小建议,它们可以让你编写测试变得 ...

  4. 极光推送-Java后台实现方式一:Http API

    Java后台实现极光推送有两种方式,一种是使用极光推送官方提供的推送请求API:https://api.jpush.cn/v3/push,另一种则是使用官方提供的第三方Java APIjar包,这里先 ...

  5. 极光推送经验之谈-Java后台服务器实现极光推送的两种实现方式

    原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/6439313.html Java后台实现极光推送有两种方式,一种是使用极光推送官方提供的推送请 ...

  6. fastJson java后台转换json格式数据

    什么事JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...

  7. IOS 基于APNS消息推送原理与实现(JAVA后台)

    Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider. APNS 是Apple Pu ...

  8. Java 后台创建word 文档

    ---恢复内容开始--- Java 后台创建 word 文档 自己总结  网上查阅的文档 分享POI 教程地址:http://www.tuicool.com/articles/emqaEf6 方式一. ...

  9. Java阶段性测试--知识点:数组,面向对象,集合、线程,IO流

    #Java基础测试 涉及知识点:数组,面向对象,重载,重写,继承,集合,排序,线程,文件流 一.多项选择题(可能是单选,也可能是多选) 1.下列标识符命名不合法的是(   D  ). A.$_Name ...

随机推荐

  1. 【IL】IL入门

    1.IL基本介绍 1.1 CLR介绍 在介绍IL之前,先说一说CLR.CLR的全称Commen Language Runtime 公共语言运行时.因为CLR的存在,使得多语言开发成为可能.下面给出一张 ...

  2. 【struts2】Struts2的系统架构

    Struts2的官方文档里附带了Struts2的架构图,下面这张图上展示了Struts2的内部模块,以及它们的运行流程. 这张图上分了好多块,彼此之间相互联系,先浏览一下各块的名字,再留心一下运行图最 ...

  3. Python学习笔记009—函数

    1. 空函数 如果想定义一个什么事也不做的空函数,可以用pass语句: def nop(): pass pass语句什么都不做,那有什么用?实际上pass可以用来作为占位符,比如现在还没想好怎么写函数 ...

  4. mysql快速移植表数据

    使用select into outfile xxx ,  load data infile xxx 例如 : SELECT * into outfile '/tmp/out.txt' FROM `db ...

  5. Android 自定义漂亮的圆形进度条

    公司有这样一个需求,实现这个圆弧进度条 所以,现在就将它抽取出来分享 如果需要是圆帽的就将,下面这句代码放开即可 mRingPaint.setStrokeCap(Paint.Cap.ROUND);// ...

  6. ARGB和PARGB

    原文链接: http://blog.csdn.net/lnwaycool/article/details/8610313 ARGB和PARGB是针对32位图像而言的,Windows下图像可以是1位.4 ...

  7. 测试rp文件

    正文: 测试我的博客,我的资源在github上! 地址:https://github.com/gmqllf/tx-lcn

  8. WinForm DataGridView新增加行

      1.不显示最下面的新行 通常 DataGridView 的最下面一行是用户新追加的行(行头显示 * ).如果不想让用户新追加行即不想显示该新行,可以将 DataGridView 对象的 Allow ...

  9. 常用的web安全处理

    1:用户名和密码认证通过后,必须更换会话标识,以防止会话固定(session fixation)漏洞. 实施指导: 在用户名和密码认证通过后增加以下两行代码: request.getSession() ...

  10. js 数组的深度递归搜索