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

问题

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

接口测试

接口文档里面包含了接口的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. 【LeetCode】230. Kth Smallest Element in a BST (2 solutions)

    Kth Smallest Element in a BST Given a binary search tree, write a function kthSmallest to find the k ...

  2. openstack neutron 二/三层网络实现

    引用声明:https://zhangchenchen.github.io/2017/02/12/neutron-layer2-3-realization-discovry/ 一.概述 Neutron是 ...

  3. [转]在Linux CentOS 6.6上安装Python 2.7.9

    在Linux CentOS 6.6上安装Python 2.7.9 查看python安装版本 python -V yum中最新的也是Python 2.6.6,所以只能下载Python 2.7.9的源代码 ...

  4. hibernate 注解 boolean问题解决方案

    1.JPA本身是不支持boolean.可以用Hibernater自带的标签.修改如下. @Column(name = "manager_log") @org.hibernate.a ...

  5. Git 查看提交历史(分布式版本控制系统)

    1.查看提交历史 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史.完成这个任务最简单而又有效的工具是 git log 命令. $ git log commit ca82a6dff8 ...

  6. 构建高性能J2EE应用的五种核心策略

    对于J2EE,我们知道当开发应用时,在架构设计阶段的决定将对应用的性能和可扩展性产生深远的影响.现在当开发一个应用项目时,我们越来越多地注意到了性能和可扩展性的问题.应用性能的问题比应用功能的不丰富问 ...

  7. linux 查看 cpu个数 核心数 线程数

    深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/43935535 (1).查看cpu信息 [root@xckydb ~]# cat ...

  8. Four Node.js Gotchas that Operations Teams Should Know about

    There is no doubt that Node.js is one of the fastest growing platforms today. It can be found at sta ...

  9. databus编译: Execution failed for task ':databus-core:databus-core-impl:compileJava'.

    在编译databus的过程中,出现了无法找到jdk的错误: 在/etc/.bashrc和/etc/profile中都配置了JAVA_HOME,依然报错,重启后还是报错,原因的是ubuntu中默认的jd ...

  10. 怎么运行 ASP.NET Core控制台程序

    aspnet test.dll