当前问题: 在我们日常的Web/App测试过程中, Fiddler是一大辅助利器:在我们团队,也经常使用Fiddler进行App抓包测试. 艺龙 App使用的REST(内部称为Mapi)接口,在使用过程中有如下特点: 1.接口请求入参:不论是GET还是POST接口:为保证隐私及数据安全,其入参均会经过一次AES加密:然后做一次Encode处理: 比如: 好吧,不经过解密,我也不知道req参数中又臭又长的到底是什么鬼: 2.接口响应,一般是经过Gzip或lzss压缩的: 这就导致在使用Fiddle…
filter的介绍 filter在Web API中经常会用到,主要用于记录日志,安全验证,全局错误处理等:Web API提供两种过滤器的基本类型:actionfilterattribute,exceptionfilterattribute:两个类都是抽象类,actionfilter主要实现执行请求方法体之前(覆盖基类方法OnActionExecuting),和之后的事件处理(覆盖基类方法OnActionExecuted):exceptionfilter主要实现触发异常方法(覆盖基类方法OnExc…
项目经测试,发现从IE提交的数据,汉字会变成乱码,实验了网上很多网友说的给ajax加上contentType:"application/x-www-form-urlencoded; charset=UTF-8",发现没有用(ajax的请求标头确实变了,但是还是会乱码) 于是开始试验进行URL编码解码,一开始我是很不想这么干,因为这意味着我的后台也要对应的解码,现在没办法了,于是考虑用一个过滤器将客户端传过来的参数全部解码后再执行方法,没什么好说的,实现如下: public class…
前提 前段时间在做一个对外的网关项目,涉及到加密和解密模块,这里详细分析解决方案和适用的场景.为了模拟真实的交互场景,先定制一下整个交互流程.第三方传输(包括请求和响应)数据报文包括三个部分: 1.timestamp,long类型,时间戳. 2.data,String类型,实际的业务请求数据转化成的Json字符串再进行加密得到的密文. 3.sign,签名,生成规则算法伪代码是SHA-256(data=xxx&timestamp=11111),防篡改. 为了简单起见,加密和解密采用AES,对称秘钥…
1.操作日志实体类 @Document(collection = "operation_log") @Getter @Setter @ToString public class OperationLog extends BaseEntityWithId { private String userId; // 操作人 private String resource; // 操作的资源 private String requestMethod; // 请求方式 private String…
背景 继之前鼓捣出了Mapi解密插件之后,在团队内已经使用了三年之久,一跃成为团队最爱欢迎的测试工具之一(加个之一,低调谦虚一点). 随着团队推行HttpRunner搞接口自动化:编写和维护Case带来的工作量成为同学们最头疼的事情:木有之一.HTTPRunner要求Case格式是YAML的:而我们的参数都是JSON的:每次编写新Case都要在二者中不断的转换,折腾的欲仙欲死.看着兄弟们日益低落的状态:我慢慢意识到,是时候再做点什么改进了. 这时候新来的同事给我提建议----能不能把Mapi请求…
1.利用apache提供的commons-httpclient-3.0.jar包 代码如下: /** * 利用HttpClient发起POST请求,并接收返回的响应内容 * * @param url 请求链接 * @param type 交易或响应编号 * @param message 请求内容 * @return 响应内容 */ public String transRequest(String url, String type, String message) { // 响应内容 Strin…
http://xyz168000.blog.163.com/blog/static/21032308201162293625569/ 2.利用java自带的java.net.*包下提供的工具类 代码如下: /**  * 利用URL发起POST请求,并接收返回信息  *   * @param url 请求URL  * @param message 请求参数  * @return 响应内容  */ @Override public String transport(String url, Strin…
前言 参数关联是接口测试和性能测试最为重要的一个步骤,很多接口的请求参数是动态的,并且需要从上一个接口的返回值里面取出来,一般只能用一次就失效了. 最常见的案例就是网站的登录案例,很多网站的登录并不仅仅只传username和psw两个参数,往往有其它的动态参数. 有时候还需要带上cookies参数,如JSESSIONID 登录参数 首先分析下目标网站[学信网:https://account.chsi.com.cn/passport/login]的登录接口请求参数. 先随便输入账号和密码,使用fi…