转载大佬   ,。。

另外一篇:https://www.cnblogs.com/imyalost/p/9758189.html
记录一下接口性能测试的学习

先熟悉一下概念:

Locust是使用Python开发的支持分布式的一款开源压力测试工具,Locust在测试时,会产生大量的用户对系统进行访问,每个用户的行为是通过Python代码控制的,并且整个测试过程可以在Web的UI界面实时观察测试数据。

Locust在单台机器上能够支持几千并发用户访问,Locust内部采用了协程gevent,通过采用分布式的方式,理论上Locust工具能够模拟无数的用户。

1.安装locust:直接$ pip install locustio 即可

安装的过程中会安装其他一些依赖的库,不要慌张,安装结束如上图,查看是否安装可以用 locust -h 来验证,当现实各种命令就是安装成功了!

2.安装完成后开始来写一个性能测试脚本

解释一下:baiduy_page()方法表示一个用户行为,使用@task修饰该方法是一个事务,client.get()用于指定请求路径,因为是百度首页所以用‘/’指定为根路径

websiteuser类用于设置性能测试

task_set :定义一个用户行为类

min_wait :执行事务之间用户等待时间的下界(ms)

max_wait: 用户等待时间的上界

下面来启动性能测试:

-f :指定性能测试脚本文件

--host :指定被测试应用的url地址,注意,访问百度使用的是https协议

然后通过该浏览器访问 http://127.0.0.1:8089   locust默认使用8089端口

如图所示:

啊啊啊啊,报错啊,没解决呢,愁死了!默认是8089端口,我改成别的端口还是不行!下班吧!回家思考一下!

3.昨天下班没解决的问题今早搞定啦,不知什么原因,地址输入localhost:8089端口就可以了,有时候就是这么简单:如下图:

number of user to simulate:设置模拟的用户数

hatch rate :每秒产生的虚拟用户数

输入用户数100,每秒产生10

下面作解释一下:

type: 请求类型

name: 请求路径,这里是百度首页,https://www.baidu.com

requests: 当前请求的数量

fails:当前请求失败的数量

median: 中间值,单位毫秒 一半的服务器响应时间低于该值,另一半高于该值

average: 平均值,单位ms 所有请求的平均响应时间

min: 请求服务器最小响应时间 ms

content size : 单个请求的大小,单位字节

reqs/sec: 每秒钟请求的个数

总结:由于这是百度首页的测试,性能需求不明,服务器配置未知,没有分析的必要!

下面拿自己公司的后台管理系统作一个简单的性能测试:

这是脚本内容

所有的操作都要先登录,所以先写一个on_start方法定义了每个用户开始做的第一件事

@task方法装饰的是一个事务

下面启动执行:

此时打开localhost:8089 查看:

这就是我司的后台的测试结果:

进入charts查看折线图:

然后我又把用户数设置为1000,每秒启动20,但是,但是,,此时,我司的后台管理系统就挂掉了,我了割草啊,吓死我了。吓得我赶紧关掉locust,尼玛,吓了我一身冷汗!哎

由此可以看出我司的后台管理系统还是比较渣渣的哈!

php写的,不过这件事只有我自己知道,哈哈哈!好了,这次的练习就到此为止吧!有机会再继续学习locust!

讲解到这里小伙伴应该都会用了;locust做简单的性能测试了啊,有不明白的可以加群,一起学习!

最后附上一个大牛写的关于locust的东西,值得深入学习,有机会仔细阅读!

以下部分为2018年8月9日更新!

由于我司下期项目要新增一个直播的模块,直播嘛想想就只到要做压力测试啦,所以今天把locust有稍微研究了下(半天时间),因为手上有项目不能耽误太久时间!

今天我要做的就是课程的详情页。就是模拟多人并发请求这个课程的详情页,也就相当于同时多个人进入这个课程.

当一切准备就绪时开始执行locust -f locustfile2.py --host=xxx 后一直给我报错,说找不到一个叫common的模块。我一想不对呀,怎么会找不到呢,因为我在locust文件中导入我的公共模块都是正常的啊,为什么执行报错呢?百思不得解!

最后在一边文章中看出了一些端倪:https://www.jianshu.com/p/ec210fd6ca4b

所以我特地根据这个改了一下我的项目结构(真够奇葩的)

把locust文件和要导入用到的文件圈放在根目录,然后执行命令

居然这就成功了,我也是醉了,对于这块我觉得可能是locust对于文件层级目录还是有要求的!还需要好好研究!

还有一种方法就是这种结构:

下次尝试吧!!
————————————————
版权声明:本文为CSDN博主「xgh1951」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xgh1951/article/details/80511365

Locust 接口性能测试 - 转载一 (后期熟悉实践自己出一套完整的)的更多相关文章

  1. 软件性能测试分析与调优实践之路-JMeter对RPC服务的性能压测分析与调优-手稿节选

    一.JMeter 如何通过自定义Sample来压测RPC服务 RPC(Remote Procedure Call)俗称远程过程调用,是常用的一种高效的服务调用方式,也是性能压测时经常遇到的一种服务调用 ...

  2. 软件性能测试分析与调优实践之路-Web中间件的性能分析与调优总结

    本文主要阐述软件性能测试中的一些调优思想和技术,节选自作者新书<软件性能测试分析与调优实践之路>部分章节归纳. 在国内互联网公司中,Web中间件用的最多的就是Apache和Nginx这两款 ...

  3. 软件性能测试分析与调优实践之路-Java应用程序的性能分析与调优-手稿节选

    Java编程语言自从诞生起,就成为了一门非常流行的编程语言,覆盖了互联网.安卓应用.后端应用.大数据等很多技术领域,因此Java应用程序的性能分析和调优也是一门非常重要的课题.Java应用程序的性能直 ...

  4. nGrinder工具进行接口性能测试

    1.背景 之前在这篇文章中性能测试初探—接口性能测试介绍过nGrinder,本文将介绍在nGrinder脚本中使用资源文件中数据作为接口参数和解析生成的CSV结果,生成TPS标准差,TPS波动率,最小 ...

  5. 【技术博客】 利用Postman和Jmeter进行接口性能测试

    利用Postman和Jmeter进行接口性能测试 作者:ZBW 版本:v1.1 在Phylab的开发过程中,对于生成报告接口的性能考量十分重要.原有的Latex接口虽然生成的报告美观,但编译Latex ...

  6. 基于locust的性能测试平台搭建

    前段时间加入性能测试组,并参与搭建基于locust的性能测试平台,我分到的任务相对独立,开发locust的启动接口和停止运行接口,现开发的差不多了,做一个总结 一.locust运行的相关内容 二.lo ...

  7. MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

    1  .MySQL数据库的性能监控 1.1.如何查看MySQL数据库的连接数 连接数是指用户已经创建多少个连接,也就是MySQL中通过执行 SHOW  PROCESSLIST命令输出结果中运行着的线程 ...

  8. 接口性能测试--JMeter

    1.JMeter Java Sampler介绍 setupTest做些初始化的工作,每个线程只执行一次 teardownTest做些清理工作,每个线程只执行一次 1.JMeter Java Sampl ...

  9. Loadrunner Webservice接口性能测试脚本编写优化总结

    本文主要介绍使用Loadrunner Webservice接口性能测试脚本编写及优化总结. 1.Webservice协议脚本编写流程 下面介绍使用Loadrunner 11调用Webservice接口 ...

随机推荐

  1. js延时定时器

    // 获取图片方向延时器 getImageOrientationTimer(context) { if (context.imageTimeout) return; if (context.image ...

  2. 版本管理·玩转git(分支管理)

    在开发中,遇到这样的情况怎么办? 网站已有支付宝在线支付功能,要添加"微信支付",修改了两个文件,wechat.php.pay.php. 刚做到一半,突然有个紧急bug:支付宝支付 ...

  3. 【LeetCode】TreeNode类实现解析(java实现)

    https://blog.csdn.net/styshoo/article/details/52865386 在LeetCode中,TreeNode是经常用到的一个结构体,表示数据结构树(Tree)中 ...

  4. Linux中vim编辑命令

    vim 功能 : 一个强大的文本编辑器   语法格式 :vim [ 选项 ] / 路径 / 文本文件名 命令格式: vi [ 选项 ] [ 文件名 ]   +num 打开某个文件直接跳转到 num 行 ...

  5. 使用 wx.miniProgram.postMessage 传递网站数据来分享网站程序页面

    在小程序里使用web-view组件,在对小程序点击顶部分享按钮分享时,分享的内容为当前页面的内容,需要使用wx.miniProgram.postMessage来进行处理 H5页面代码 created( ...

  6. 【HDU1814】Peaceful Commission(2-sat+暴力染色)

    传送门 \(2-sat\)的模板题,首先得出题目中的二元关系为:对于有矛盾的\(x_i,x_j\),至多选择一个,那么连边\(x_i\rightarrow x_j',x_j\rightarrow x_ ...

  7. SpringCloud学习笔记(五、SpringCloud Netflix Hystrix)

    目录: Hystrix简介 线程隔离:线程池.信号量 服务降级.服务熔断.请求缓存.请求合并 Hystrix完整流程.Hystrix属性值 注解方式实现Hystrix Hystrix Dashboar ...

  8. else if 使用注意

    写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数.不区分大小写. 例如:输入:ABCDE A 输出:1 错误代码如下: #include < ...

  9. 201871010113-刘兴瑞《面向对象程序设计(java)》第四周学习总结

    项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址>http ...

  10. CF798D Mike and distribution

    CF798D Mike and distribution 洛谷评测传送门 题目描述 Mike has always been thinking about the harshness of socia ...