编写一个Locust文件

Locust文件就是一般的Python文件。唯一的需求就是它至少需要一个继承于Locust的类. Locust类 Locust类代表一个用户(如果愿意,也可以是一个准备出动的蝗虫)。Locust会为每一个模拟用户生成一个locust类实例。同时会有一些locust类属性被定义。 task_set属性 task_set属性是指向一个定义用户行为的TaskSet类,下面会有详细的介绍。 min_wait和max_wait属性 除了task_set属性,另外一个经常被使用的就是min_wait和max_wait属性。是用于各自以毫秒为单位的最小值和最大值,一个模拟用户将会在每个任务执行时的等待执行的时间间隔。min_wait和max_wait默认设置为1000,如果不声明的话,Locust会默认在每个任务间等待1秒。 参考下面的代码,每个用户将会在每个任务间等待5至15秒: from locust import Locust, TaskSet, task_set class MyTaskSet(TaskSet): @task def my_task(self): print "executing my_task" class MyLocust(Locust): task_set = MyTaskSet min_wait = 5000 max_wait = 15000 min_wait和max_wait属性可以用于重写TaskSet类。 ...

June 2, 2017 · 9 min · Yuanjie

Locust快速入门

Locust,基于Python的性能测试工具。 什么是Locust 本文Locust版本0.7.5 原文地址:http://docs.locust.io/en/latest/quickstart.html# 示例locustfile.py 下面是一个简单的locustfile.py小示例: from locust import HttpLocust, TaskSet def login(l): l.client.post("/login", {"username":"ellen_key", "password":"education"}) def index(l): l.client.get("/") def profile(l): l.client.get("/profile") class UserBehavior(TaskSet): tasks = {index: 2, profile: 1} def on_start(self): login(self) class WebsiteUser(HttpLocust): task_set = UserBehavior min_wait = 5000 max_wait = 9000 ...

May 24, 2017 · 3 min · Yuanjie

JMeter3.2更新内容

2017.4.14,JMeter3.2版本发布。 原文地址:Apache JMeter 3.2 Release Notes , 下载地址: Download Apache JMeter 3.2 重要变更 JMeter现在需要Java8。确保你使用的最新版本的Java。 JMeter日志已经被迁移至SLF4J和Log4j 2。这个影响配制和第三方插件,查看下面的『日志变更』. 在使用JMeter的3.2版本时,在结果树中的结果数里从默认修改为500.如果你想查看更多,必须修改属性view.results.tree.max_results为一个更高的数值或者你不想限制数量可改为0。你可以在bin/user.properties中设置。更多的信息可查看这里 主要提升 JMeter现在提供一个新的BackendListener与InfluxDB交互 这个功能使用异步的HTTP请求发送数据至InfluxDB通过HTTP API并提供下面的图形展示结果 ...

May 13, 2017 · 3 min · Yuanjie

JMeter3.1更新内容

2016.11.20,JMeter官网已经正式发布了3.1的版本,今天尝试翻译下更新内容,内容中肯定还有很多不足,希望大家多多谅解。 原文地址:Apache JMeter 3.1 Release Notes , 下载地址: Download Apache JMeter 提升报告和仪表盘 仪表盘新增三个图表和一个概要表格 连接时间 成功百分比响应时间 响应时间分布 执行样例中的错误Top5 ...

March 9, 2017 · 2 min · Yuanjie

性能测试-JMeter入门手册

Github地址(源文件及脚本) 本文目的 面向新手,学习后可以使用JMeter独立完成项目的性能测试 快速分析并使用JMeter定位出项目性能测试结果 产出有价值的性能测试报告 目录 简介 认识JMeter 了解并启动JMeter 认识JMeter 第一个测试 提高JMeter 线程高并发 逻辑控件器 断言测试 结果分析 完善JMeter HTTP信息头管理 数据获取 实战性能测试 分析测试 断言结果详细分析 结果详细分析 服务器分析 扩展插件 进阶使用 命令行执行JMeter 性能测试常用专业述语 JMeter最佳实践 性能测试最佳实践 测试报告 结束语 说明 基础环境信息: OS:macOS Mojave 10.14.2 JDK:11.0.1 JMeter:5.2.1 QQ交流群:478527666 文中关于JMeter的功能,不会很详尽,够用足以 源GitBook地址:https://aimer1124.gitbooks.io/jmeter-tutorial/content/,停止更新

February 28, 2017 · 1 min · Yuanjie

JMeter与BeanShell的化学反应

JMeter是什么 http://jmeter.apache.org/,性能测试工具。 基于Java的开源性能测试工具 支持测试的协议 Web - HTTP, HTTPS SOAP / REST FTP Database LDAP Message-oriented middleware (MOM) Mail Native commands or shell scripts TCP 支持多线程并发 完善的GUI界面,用于快速设计测试计划和调试测试脚本 完整测试结果,便于结果分析 JMeter不会执行HTML中的JavaScript脚本 BeanShell是什么 http://beanshell.org/ 基于Java的免费解释器 松散类型的脚本语言 动态执行的Java代码 只有150K大小的JAR包 BeanShell既然可以编写Java代码,那么我们就可以在使用JMeter测试的过程中,使用Java语法功能,且支持关键字高亮,进行业务逻辑的处理,进而达到场景功能的设计。 ...

November 1, 2016 · 3 min · Yuanjie

利用21天的完成一本Mini书

自己之前也没有任何写书的经验,这次写这本书,也是经一位朋友的建议,把自己了解的关于JMeter内容梳理下来,整本书仅79页。 书中的内容是性能测试工具JMeter的入门级使用。在准备写的时候,在心里做了简单的规划,如下: ...

September 26, 2016 · 3 min · Yuanjie

JMeter-自动生成测试Report

Dashboard Report JMeter3.0版本发布后,开始支持动态报表报告。让测试人员编写性能测试报告更加容易。 支持在测试结束后,生成测试报告 导入之前测试结果,生成测试报告 下面就看下如何使用这个新特性,生成测试报告 ...

September 23, 2016 · 3 min · Yuanjie

性能测试之远程并发模式

事实上,你的JMeter客户端机器是不能表现出完美的压力请求,来模拟足够多的用户或由于网络限制去向服务施加压力,一种解决方法是通过一个JMeter去控制多个/远程JMeter。通过运行JMeter的远程模式,你可以通过多个低配制的电脑复制测试计划用于模拟一个大数据量的压力并发在服务器上。一个JMeter客户端实例可以控制多个远程JMeter实例,并收集所有数据信息。特点如下: 保存测试样例在本机电脑 通过一台机器来管理多台JMeter测试机 不需要复制测试计划到每一台JMeter测试机-JMeter客户端会发送至所有的服务器 提示: 相同的测试计划将会被运行在所有的服务器中。JMeter不会在服务器间分发压力,每一个均会完整执行测试计划。因此,如果你设置了1000个线程并有6个JMeter服务,你将会完成6000线程注入。 ...

September 12, 2016 · 10 min · Yuanjie

性能测试最佳实践之JMeter

保持使用最新版本 JMeter被经常推荐用来测试性能,鼓励用户使用最新的版本。 确保你要经常去阅读变更记录中的新功能和模块的提升。你不应该再使用3.0之前的版本了 使用正确的线程数 你硬件设备的能力及测试计划将都会影响你的JMeter可运行的线程数。数量也依赖于你的服务有多快(一个可快速响应的服务可以让JMeter变更更加给力)。像其它性能测试工具一样,如果你没有正确的线程数,你将面对不准备或错误结果的Coordinated Omission问题。如果你需要大数量级的压力测试,考虑使用分布式模式在多台机器上运行无GUI的JMeter实例。当使用分布式模式时,结果将被聚合在控制器的结果中,如果使用多个自已的实例,结果文件可以聚合用于持续性分析。对于如何在一个给定的平台上使用JMeter测试,JavaTest Sampler可以考虑使用。它不需要任何网络请求便可返回一些信息在最大的吞吐量。 JMeter有选项用于延迟线程创建直到线程正常启动,如在其它线程组延迟之后和线程自身的启动时间。这样就允许一个非常大数量级的线程数,不需要太多的线程同时并发。 ...

August 31, 2016 · 10 min · Yuanjie