最近在研究一个bug的时候发现原有的模拟http response的系统功能有些缺失, 主要是缺少了对chunked response的支持, 而这个bug恰恰就是在这种情况下容易出现, 遂为了能让这个系统更灵活并易于我们自己维护, 写了这个新的系统, ok, 废话不多说了, 简单介绍下这个service的大致功能吧:
1. 支持指定长度的response
2. 支持chunked response
3. 混合模式, 根据设定的比例返回response
地址在这里
How to run:
1. make
2. make install
3. cd bin && ./httpd_mock -c ../etc/httpd_mock.cfg
提示: 如果想安装在别处, 比如/usr/local下可以: make prefix=/usr/local/ && make install
想必看过config之后大家就能对其功能更加一目了然了:
# This is a default configuration file
# The format is "key = value"
# server listen port
listen_port = 7758
# server max connection
max_connection = 20000
# workers
workers = 1
# response type [CONTENT|CHUNKED|MIX]
response_type = MIX
# chunk ratio [0-100], active when response_type is MIX
chunk_ratio = 10
############## CONTENT RESPONSE SETTING #############
# min latency[ms]
min_latency = 50
# max latency[ms]
max_latency = 100
# min response size[byte]
min_response_size = 100
# max response size[byte]
max_response_size = 200
############## CONTENT RESPONSE SETTING #############
############## CHUNK RESPONSE SETTING #############
# min chunk latency[ms]
min_chunk_latency = 50
# max chunk latency[ms]
max_chunk_latency = 100
# min chunk response size[byte]
min_chunk_response_size = 100
# max chunk response size[byte]
max_chunk_response_size = 200
# chunk blocks
chunk_blocks = 2
############## CHUNK RESPONSE SETTING #############
# server timeout[ms]
timeout = 10000
# log level [TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
log_level = INFO
# log filename
log_filename = /tmp/httpd_mock_log
ok, that's all~ :D