今天拿到了一个性能测试任务,就此对性能测试做个记录和总结。需求:产品提出的需求40w条数据,4小时内全部获取完成,测试接口是否能称承受。
一、性能测试计划和目标
实际调研:发现每个月的总数据量只有4w条,4小时获取全部数据,则每小时的request数为40000/(4*3600)=2.8每秒,则tps设置为2.8,而定时调用此接口的只此一家公司,调用不同产线的接口能开启的线程数为7,则并发数=7,然后根据此目标,在jmeter设置并发数7,tps=2.8,获取响应时间,响应时间小于现在线上的响应时间,则认为接口的性能是OK的。二、性能测试脚本编写
这边测试的接口需要先获取ticket,然后请求,获取响应,所以这边要先请求获取ticket的接口。在测试计划下新建线程组
线程组下新增获取http请求。
需要获取此线程组上接口的response,所以在此线程组上新增json提取器,提起响应中的ticket字段。
提取的变量的范围只在此线程组内,要跨线程的话,需要从新建beanshellsampler,将局部变量变为全局变量,供所有线程使用。
新建另一个线程组,放置被测接口,这里的接口需新增用户定义的变量,将前面获取的全局变量赋值给这个用户变量,在接口中直接引用此变量。
前面设定的tps为2.8,这个是多接口一起的tps,如图在此线程上添加吞吐量定时器。
在线程上设置线程数,启动时间,循环次数,持续时间,比如这里,同时启动9个线程,持续11200秒。
在此线程组上添加聚合报告和查看结果数,然后就可以启动运行了。
以上就是此次性能测试的基本内容,对于小细节部分,下次再讲如何对单个接口进行性能测试。