http tests自动化管理和运行
程序员文章站
2022-06-06 09:35:39
...
工作中为测试童鞋们写的一个小工具,之前都是测试自己写java代码,调用一些公用的方法,如登录,准备数据接口,然后再调用http,返回json做断言。我看到大部分流程都类似,反复写这些代码不如写个脚本,只需要简单的配置文件就可以了,可惜脚本写的不够强大,没有达到dsl输入的目标。
eg. 配置文件如下
# des 测试2说明
# setup
;sql
insert into t_test(name) values ('kerry1');
insert into t_test(name) values ('kerry2');
;sqlFile
insert1.sql
;requestFile
http1.txt
http2.txt
;; url response :
;; {"key2":"value2", "name": "kerry", "age": 15}
# url http://localhost:8888/jsonSend
# method post
# params
;json
{"name": "kerry", "age": 15}
# headers
Content-Type: application-json
# expects
data.key2 == 'value2'
# teardown
;sql
delete from t_test where name like 'kerry%';
# end
# setup
;sql
insert into t_test(name) values ('kerry1');
insert into t_test(name) values ('kerry2');
;sqlFile
insert1.sql
;requestFile
http1.txt
http2.txt
;; url response :
;; {"key2":"value2", "name": "kerry", "age": 15}
# url http://localhost:8888/jsonSend
# method post
# params
;json
{"name": "kerry", "age": 15}
# headers
Content-Type: application-json
# expects
data.key2 == 'value2'
# teardown
;sql
delete from t_test where name like 'kerry%';
# end
和junit的一个testcase对应,包括setup/teardown阶段,可以执行sql或调用其他http接口。测试结果最终保存在一个list数据结构里,可以很容易实现junit report的xml输出。
具体的代码感兴趣的童鞋请参考我的git:
http://git.oschina.net/key232323/http-test-runner