再阅读本文之前请下载 测试工具源码--http://download.csdn.net/detail/shuaizai88/9728596
工具实现逻辑
手动输入接口id(在t_interface表配置的自增id,用来获取一个接口的配置信息),输入ssoid - 也就是我们自己封装的sessionid,输入访问次数和并发次数。
首先会根据并发量创建线程池,根据接口id获取接口信息,然后创建 task交给线程池执行,记录每一个task的执行时间,结果,是否失败等信息,然后入库。
1 因为公司需要对hprose接口进行性能测试,没有用的爽的工具,故自己花了一下午做了一下 (java 版本)。
2 数据库建表语句
接口和 参数配置表
CREATE TABLE `t_interface` (
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`url` varchar(1024) NOT NULL COMMENT '接口地址',
`param` varchar(2048) NOT NULL COMMENT '参数',
`functionName` varchar(102) NOT NULL COMMENT '方法名称',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8
接口调用记录表
REATE TABLE `t_interface_exe_log` (
`id` int(32) NOT NULL AUTO_INCREMENT,
`interfaceId` int(32) NOT NULL COMMENT '接口类型id',
`param` varchar(1024) CHARACTER SET utf8 NOT NULL COMMENT '参数',
`resultInfo` text NOT NULL COMMENT '返回结果',
`resultType` varchar(10) CHARACTER SET utf8 NOT NULL COMMENT 'success,error,other',
`exceptionInfo` text CHARACTER SET utf8 COMMENT '异常信息',
`times` int(32) NOT NULL COMMENT '时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17756 DEFAULT CHARSET=utf8mb4
3 使用说明--您老需要自己手动修改的地方,不能直接使用噢。
A 我们公司使用了给手机客户端封装的sessionId 用来识别是哪个用户,参数为ssoid,如果你们公司没有这个参数,或者参数名称不同,需要修改下代码。
修改类TestMain.main方法 和 TestService .runTest方法 和 HproseInterfaceInfo.setSSOID方法。
B 我们公司接口调用有3种状态, 正常,结果会附带一个code:200 如果异常 附带一个 code:300 其他异常 一版是执行超时 。
如果要修改需要修改TestService .exeHproseFun 方法。
如果有问题+QQ921888199。
PS:hprose 作者小马哥给我另外一个测试工具大家有需要也可以参考下https://github.com/Lao-liu/hprose-http-benchmark-wrk