性能专题:Locust工具实战之创建性能测试
发布时间:2019-12-03 04:08:06 所属栏目:资源 来源:测试开发技术
导读:1. 前言 在前面的 文章 中,我们介绍了 性能测试 框架 Locust 是什么:性能专题:Locust工具实战之开篇哲学三问,以及如何安装它:性能专题:Locust工具实战之“蝗虫”降世。 接下来在本篇中,我们通过几则示例为大家展示如何利用Locust来创建性能测试。
1. 前言 在前面的文章中,我们介绍了性能测试框架Locust是什么:性能专题:Locust工具实战之开篇哲学三问,以及如何安装它:性能专题:Locust工具实战之“蝗虫”降世。 接下来在本篇中,我们通过几则示例为大家展示如何利用Locust来创建性能测试。 在Locust 中没有傻瓜式的脚本录制功能,要想用它来做性能测试,必须撸起袖子来写代码。不过,它并不难! 2. 几个简单的性能脚本示例 Locust里面请求是基于requests的,每个方法请求和requests差不多,请求参数、方法、响应对象和requests一样的使用。 requests.get 对应client.get requests.post 对应client.post 示例1:创建 load_test.py 文件,通过 Python 编写性能测试脚本。 UserBehavior类继承TaskSet类,用于描述用户行为。 其中,cnblogs_index() 方法表示一个用户为行,用于访问博客园首页。使用@task装饰该方法为一个事务。client.get()用于指请求的路径“/”,因为是博客园首页,所以指定为根路径。 示例2: 脚本说明: 1. 首先需要导入locust模块里面的三个方法,HttpLocust,TaskSet,task。 2. 创建一个类继承自TaskSet,表示在这个类里面都是Locust的任务,这个类就算Loucst的任务集,例如新建一个类`MyBlogs(TaskSet)` 或 `UserBehavior(TaskSet)`继承`TaskSet`。 3. 创建任务,其实就是定义一个方法,需要注意的是,这个方法上面多了一个task的装饰器,这个装饰器是用来标是定义的这个方法会被locust识别成它需要做的任务,task装饰器后面会有参数,如果执行单任务的时候,后面这个权重随便写上什么数字都无所谓,这个数字其实就是一个权重值,但是如果有多个任务的情况下,这个时候权重值就会起作用了。 `self.client`调用get和post方法,和`requests`用法一样; `@task`装饰该方法表示为用户行为,括号里面参数表示该行为的执行权重:数值越大,执行频率越高,不设置默认是1; 举个栗子: 如有index和search分别设置权重1、2,如果测试时指定30个模拟用户数,那么会有10个模拟用户数执行index任务,有20个模拟用户数执行search任务。 简而言之可以把这个权重理解为执行次数的多少,数值越大,执行的频率就越高。 3. 执行性能测试 1、如果启动的locust文件名为`locustfile.py` 并位于当前工作目录中,可以在编译器中直接运行该文件,或者通过命令行,执行如下命令: 2、如果Locust文件位于子目录下且名称不是locustfile.py,可以使用-f命令启动上面的示例locust文件: -f 参数是指定运行的脚本 --host是指定运行项目的host地址,这里用的https://www.cnblogs.com,代码里面get访问的是"/jinjiangongzuoshi",拼接起来就是完整地址了。 3、如果要运行分布在多个进程中的Locust,通过指定-master以下内容来启动主进程 : 4、如果要启动任意数量的从属进程,可以通过-salve命令来启动locust文件: 5、如果要运行分布式Locust,必须在启动从机时指定主机(运行分布在单台机器上的Locust时不需要这样做,因为主机默认为127.0.0.1) 6、启动locust文件成功后,编译器控制台会显示如下信息: 8089是该服务启动的端口号,如果是本地启动,可以直接在浏览器输入http://localhost:8089打开UI界面,如果是其他机器搭建locust服务,则输入该机器的IP+端口即可。 4. Locust Web界面模式 Locust默认使用该方式启动,启动后在本机打开http://localhost:8089/,可以看到Locust WEB页面,设置并发用户数及每秒请求数后即可开始性能测试。![]() ![]() ![]() (编辑:92站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |