构造客户端请求的第100种办法

发表于:2017-11-16 09:58

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:lidedede 搜狗测试    来源:51Testing软件测试网采编

  背景
  最近在做一个服务的测试,由于这个服务对安全性要求非常高,所以使用了一套非常复杂的加密逻辑,以至于即使知道如何加密的,想要用其它语言写出来也非常麻烦;测试需求是完成例行的接口测试case,和服务稳定性测试,尝试用python构造请求,发现成本太高,于是尝试了这个偷懒的办法;
  思路
  ●1、根本目的是构造客户端请求,所以从客户端入手,客户端一定会将正确的请求发到服务器上;
  ●2、在测试服务端之前搭一台nginx服务,nginx将所有满足条件的请求均转发到测试服务器;
  ●3、客户端配置host将请求发到配置的nginx服务器上;
  ●4、nginx服务器把客户端请求的url、请求body都记录到log中;
  ●5、使用客户端做冒烟用例的操作,让客户端发送各种需要的请求;
  ●6、这时,nginx服务器上已经把各种需要的请求都记录到了log中,例如下图;
  怎么做
  1、配置nginx服务器及转发就不多说了,sogo一下吧; 
  2、这里要强调的是,nginx默认log好像是没有请求body,需要在log的定义里加上$request_body; 
  3、拿到的postbody之后是这种格式的"0\x00\x07\x00\x00\x01\x00\x01\x06giugai\x1E\x008" 
  4、这个是nginx把请求body转成文本之后的样子,这个东西是不能直接用的,试验了一下,写了个脚本把这种东西转换一下就可以作为postbody发了;
  转换脚本

  这样,就不需要自己重新写复杂的加密逻辑就可以构造一些简单的case来完成自动化接口测试了;
  适用需求
  1、编写接口自动化回归测试用例时构造请求 
  2、结合客户端自动化,收集大量请求数据,用来做压测和稳定性测试;
  缺点
  这样做有一些缺点,比如:没办法构造异常情况;没办法自定义请求中的某些参数等;
  结尾
  对于构造客户端请求,你有什么更nb的办法没?可以留言分享一下,让我们看看你的脑洞~
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号