/rest-testscript

开源测试框架,可用于并发测试、性能测试,测试驱动开发等场景 可以支持自增、随机、循环、并发等标签

Primary LanguageJava

rest-testscript

base rest testscript 这是一个基于java http connection 、httpclient写的测试框架,可用于并发测试、性能测试,测试驱动开发等场景 可以支持自增、随机、循环、并发等标签

运行用例:

  linux:
cd /data/search/rest-testscript/bin sh run.sh hash query sh run.sh -c100 -t60 url win: cd D:\workspaces\rest-testscript\bin run.bat hash query

###快捷并发测试 类似webbench方式进行压力测试 sh run.sh -c10000 -t60 http://localhost:9900/demo/test?a=b

###编写测试用例

cd rest-testscript/bin
mkdir -p ../script/jetty/jsp
vi ../script/jetty/test.properties 
#
BASE_URL=http\://localhost
PORT=9009
INDEX_NAME=
#Tag
RANDINT=
SEQINT=
QUERYWD=
QUERYWD.PATH=
#Command
SLEEP=
FOREACH=
CONCURRENT=

vi ../script/jetty/jsp/index.txt 
${BASE_URL}:${PORT}/index.jsp

GET



${CONCURRENT.300_100}
                       

执行结果

读取运行测试用例脚本  Usage: org.langke.testscript.Test <project> <operate> <scriptSubDir>
project测试脚本项目目录名称,
operate测试步骤目录名称,可以是all表示递归执行该目录下所有脚本
scriptSubDir 子目录名 执行步骤目录下子目录脚本
只执行.txt格式脚本,每个步骤目录下可以有子目录,程序会递归执行

标签配置在每个脚本项目根目录下test.properties文件里,在运行时:
简单标签会把脚本里标签替换成properties文件里key对应的值
COST_TIME=costTime 用于并发时取服务端返回执行时间的JSON串

生成器标签: SEQINT,自增整数 Usage:${SEQINT.0} 0表初始值
RANDINT,随机整数 Usage:${RANDINT.0_1000} 0_1000表随机值范围
QUERYWD,随机关键词 Usage:${QUERYWD.RAND} 也可指定随机关键词文件${QUERYWD.randkwd2.txt}或者properties文件配合QUERYWD.PATH=randkwd.txt配置关键词文件,如果没有则生成英文数字混合随机字符串
RANDINT,QUERYWD有设置随机种子数,也就是每次运行的随机顺序的值会相同

指令标签,(配置在测试脚本第五段,如果没有第四段需要留出空行):
SLEEP,等待指令,Usage:${SLEEP.10} 10表等10秒,可以是浮点数 ,可用于schema创建时等待shard分配等等
FOREACH,循环指令,Usage:${FOREACH.10} 10表循环10次
CONCURRENT,并发指令Usage:${CONCURRENT.100_200} 100表并发数,200表任务执行个数, 并发结果汇报ResponseCode,ResponseMessage

测试脚本格式: 第一段URL,第二段METHOD,第三段请求BODY,第四段预计结果;第五段指令${FOREACH} ${SLEEP}
以空行区分每个段落,注意脚本格式:为空的段落需要留出空白段