目录
前言:
Locust 是一种开源的性能测试工具,可以帮助我们快速地进行网站、应用程序等的性能测试和压力测试。
背景
最近自己开发了一个小的接口,功能测完了,突然想测下性能,原来做性能测试,我一直用的是 HP 的 LoadRunner,前一段时间正好看过 locust,想想就用这个来测测性能吧。
由于对 LR 比较熟,正好做个对比,这样更利于对新东西的理解。
基础
locust 的官网:Locust - A modern load testing framework
目前 locust 还只支持 Python 2 版本。
测试需求
验证在相同的服务器端的情况下,使用 LR 和 locust 分别进行性能测试,在相同并发用户的情况下,验证平均响应时间,TPS 值等性能测试指标的差异。
为了方便,使用 http 协议,一个 get 请求,一个 post 请求,交易比例为 1:1。
服务器端
为了简单易理解,用 Python 的 bottle 框架写了一个服务器端,2 个交易,一个 get,一个 post 请求,交易中加了 2 个不同的 sleep。
代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'among,lifeng29@163.com'
from bottle import *
from time import sleep
app = Bottle()
@app.route('/transaction_1', method='GET')
def tr1():
sleep(0.2)
resp = dict()
resp['status'] = 0
resp['value'] = 'xxx'
return resp
@app.route('/transaction_2', method='POST')
def tr2():
parm1 = request.forms.get('parm1')
parm2 = request.forms.get('parm2')
sleep(0.5)
resp = dict()
resp['status'] = 0
resp['value'] = 'yyy'
return resp
run(app=app, server='cherrypy', host='0.0.0.0', port=7070, reloader=False, debug=False)
服务器端部署在一个单独的 Windows 的机器中,基于 Python 3,启动后,监听 7070 端口。
LR 中的测试脚本
在另外的一个 Win