上一篇写了,用postman对接口进行简单接口测试,这次就写用jmeter对此接口进行小型性能测试
首先安装好Jmeter,
先添加一个最基本的元件-线程组:
首先弄清楚线程组里这些是怎么设置的:
1、线程组:可看作虚拟用户数
2、Ramp-up Period(in seconds)
要用多长时间启动完你设置的线程数。比如你设置了5个线程,这里设置了10s,那么10/5,将会在每个线程2s后启动下一个线程,10s内全部启动。(默认不填就是0s,同时启动所有的线程)
3、循环次数:
一个线程循环多少次,则去掉前面的勾,在后面设置,可根据具体情况而定。
4、Delay Thread creation until needed
延迟创建线程,直到线程被需要、开始采样才会被创建。避免资源浪费
When selected, JMeter will allocate threads according to the ramp up times. Otherwise all threads are allocated to the JVM process the moment the test is started, regardless of ramp up time.
5、调度器
启动时间:设置脚本运行启动时间,你可以先点运行 ,然后脚本会在你设置的时间开始运行
结束时间:设置脚本结束的时间。
持续时间:设置脚本持续运行时间。如果脚本运行到了结束时间,若持续时间还没结束,那么继续执行
启动延迟:设置脚本延迟启动时间。点运行后,如果启动时间到了,此时又设置了启动延迟时间且还没到,那么,脚本需要在延迟时间后才启动
( 总结:持续时间>结束时间; 启动延迟>启动时间 )
接下来,需要在线程组里添加一个http请求控件,如下如设置
添加查看结果树:
以下单位都是ms
聚合报告:
lable:显示请求测试元件name的值
sample:发出的请求总数
average:平均响应时间;默认情况下是单个 Request 的平均响应时间,如果使用了 Transaction Controller 控制器时,就是 以 Transaction 为单位的请求平均响应时间(一般会大于子请求响应时间之和)。
Median:中位数,也就是 50% 用户的响应时间。
90% Line
Min
Max :服务器的最大响应时间
Error% :本次测试中错误请求的出错率
Throughput :吞吐量,默认情况下表示每秒处理的请求数( Request per Second )
KB/Sec
summary report:
其余与上一致;
Std.Dev:偏离量,越小表示越稳定
perfmon metrics collecter:监控widows、Linux等系统的cpu、内存、硬盘I/O等数据的
首先需要下载一个ServerAgent-2.2.1.zip包,解压后放置在根目录,然后根据对应系统运行对应服务ServerAgent。
然后再运行的时候,添加此报表,添加你想要看的数据cpu...
( port :4444是一个固定的监听端口 ,并不是你接口所开发的那个端口
至此结束。
以下是总结的一些知识点-------------------------
mysql知识点:
插入insert:成功返回结果1,否则0
查询select:成功返回结果插入的行id,否则0
删除delete:成功返回结果删除的行id,否则0
修改update:成功返回结果更新的行id,否则0
python接口知识点:
python处理请求数据,请求格式不同,处理的请求的方式自然也不同;
1、处理get请求
username =flask.request.args.get('username')
2、处理post请求(data不是以json格式传的)
以postman举例:
这种可以用此种方法:
username = flask.request.values.get('username')
3、处理post请求(data是以json格式传的)
这种可以用:
get_data(as_text=True)) #get_data()方法来接收数据,数据格式是bytes;设置 as_text=True后可以将数据转成unicode;然后json.loads()方法可以将json转成字典
username =get_data['username']
password = get_data['password']