Http请求模拟报文返回工具HttpSimulation分享
来源:互联网 发布:马原人工智能与意识 编辑:程序博客网 时间:2024/06/05 16:24
身为一名程序员,HTTP我想是没有人不知道的吧,另外在大家开发过程中应该遇到过这样的问题,就是需要模拟一个HTTP报文返回,好对自己的程序进行功能测试,今天在这篇文章中跟大家分享一个自己实现的小工具--HttpSimulation,用于对模拟各种HTTP报文返回场景,有需要的可以下载使用,如果有志同道合的可以一起不断完善这个小工具。
需求描述:
开发一个简单工具,用于帮助开发、测试及相关人员进行HTTP请求的相关场景模拟需求。
开发功能描述:
(1)根据指定的请求参数返回相应的模拟报文,用于模拟部分场景;
(2)返回报文支持加密和不加密;
(3)返回报文支持压缩和不压缩;
(4)返回报文支持HTTP头字段设置;
(5)对单个接口支持返回多个报文,返回报文按照一定设定的占比随机返回(用于模拟有时成功,有时失败的场景);
自己实现的代码是一个maven项目,HttpSimulation项目代码已经开源到Github,项目地址如下所示:
https://github.com/andamajing/HttpSimulation
可以在Eclipse中直接导入该项目,经过构建后生成一个war包,直接部署在tomcat下启动即可,对于返回的报文需要在配置文件config.xml中进行配置,在下面给出了一个示例配置文件:
<?xml version="1.0" encoding="UTF-8"?><config><component id="test"><interface id="test"><encrypt>false</encrypt><encryptmode>des</encryptmode><encryptkey>123456</encryptkey><compress>false</compress><compressmode>gzip</compressmode><response rate="50,50" cachable="true"><headers><header><name>Content-Type</name><value>application/json</value></header></headers><responsetags><responsetag>*/simulation1.txt</responsetag><responsetag>*/simulation2.txt</responsetag></responsetags></response></interface></component></config>
上面配置说明:用于配置test组件的test接口调用时随机返回simulation1.txt和simulation2.txt文件中配置的报文,返回报文随机,占比约50%:50%。
参数字段说明:
字段名称
上级字段
字段含义描述
数量要求
节点属性
备注
config
无
配置上下文
1
顶级节点
component
config
单个组件配置
+
子节点
含有属性id
interface
component
单个接口配置
+
子节点
含有属性id,用于唯一标识一个接口,相同组件下的接口id要确保唯一;
encrypt
interface
是否加密
1
子节点
encryptmode
interface
加密算法
0/1
子节点
目前仅支持DES加密;在启用加密情况下需要设置该值;
encryptkey
interface
加密秘钥
0/1
子节点
在启用加密情况下需要设置该值;
compress
interface
是否压缩
1
子节点
compressmode
interface
压缩算法
0/1
子节点
目前仅支持GZIP压缩;
response
interface
返回报文配置
1
子节点
用于配置模拟返回包
rate
response
返回包的返回占比
0/1
属性节点
默认100,如果有多个返回包
cachable
response
返回的报文是否缓存在内存
0/1
属性节点
默认true,如果报文文件在服务使用过程中有修改需求,需设置成false,表示读取最新的文件内容。
headers
response
返回头设置
*
子节点
header
headers
单个返回头
*
子节点
name
header
返回头名称
1
子节点
value
header
返回头名对应的值
1
子节点
responsetags
response
返回包文件位置配置
1
子节点
responsetag
responsetags
单个返回包配置
+
子节点
必须配置绝对地址,否则无法正确访问文件;
使用说明:
请求地址:****/simulation/test?componentid=*&interfaceid=*
示例:
http://localhost:8081/simulation/test?componentid=test&interfaceid=test
返回包:
{
"resultcode":"200",
"reason":"Return Successd!",
"result":{
"province":"浙江",
"city":"杭州",
"areacode":"0571",
"zip":"310000",
"company":"中国移动",
"card":"移动动感地带卡"
}
}
(备注:上面simulation1.txt和simulation2.txt文件中保存的都是如上json字符串。)
如果您觉得该工具对您有帮助并且愿意打赏我,欢迎扫描下面二维码通过微信或者支付宝进行土豪打赏,感谢您的支持,谢谢!
- Http请求模拟报文返回工具HttpSimulation分享
- (0011) iOS 开发之模拟HTTP请求与响应,返回自己想要的报文。
- PostMan使用模拟http请求 发送xml报文请求
- Postman-Http请求模拟工具
- Http模拟请求工具类
- 工具分享:模拟网络请求工具RESTClient
- HTTP请求报文格式
- http请求报文
- HTTP请求报文详解
- Http请求报文格式
- HTTP请求报文解剖
- HTTP请求报文详解
- HTTP请求报文格式
- HTTP请求报文
- HTTP请求报文格式
- http请求报文介绍
- http请求报文详解
- HTTP请求报文
- Android IntentService完全解析 当Service遇到Handler
- ubuntu14.04安装opencv2.4.9
- 网站如何突破瓶颈
- 打造 Bootstrap Tags Input 同 Modal 结合的利器
- C语言基础 定义int与long型变量并附初值
- Http请求模拟报文返回工具HttpSimulation分享
- 2016年学习心得
- Spark源码学习(10)——Spark Streaming
- 深入探讨 Java 类加载器
- 堆排序
- 数组中的逆序对
- 盲打首秀
- 用“辗转相除法”求最大公约数
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类