一、JMeter
1 运行JMter
1.1 JMeter目录

1.2 JMeter的Classpath
JMETER_HOME/lib:用于公共jar包
JMETER_HOME/lib/ext:用于JMeter组件和插件
如果已经开发了新的JMeter组件,应该将jar包复制到JMeter的 lib/ext 目录中。JMeter将自动在这里发现的任何jar中找到JMeter组件。不要使用 lib/ext 用于公共jar或插件使用的依赖项jar;它只用于JMeter组件和插件。
如果不希望在 lib/ext 目录中放置JMeter插件jar,那么在 jmeter.properties 中定义属性 search_paths 。
实用程序和依赖项jar(库等)可以放在 lib/ 目录中。如果不想在 lib/ 目录中放置这样的jar,那么可以在 jmeter.properties 通过 user.classpath 或 plugin_dependency_paths 定义属性。请参阅下文以解释这些差异。
其他jar(如JDBC、JMS实现和JMeter代码需要的其他支持库)应该放在 lib/ 目录中,而不是 lib/ext 目录,或者添加到 user.classpath。
1.3 Non-GUI 模式(命令行模式)
对于负载测试,必须在此模式下运行JMeter(没有GUI)才能获得最佳结果。为此,使用以下命令选项:
-n
它指定JMeter在非GUI模式下运行
-t
[包含测试计划的JMX文件的名称]
-l
[JTL文件的名称以日志样本为结果]
-j
[JMeter运行日志文件的名称].
-r
在 JMeter 属性“remote_hosts”指定的服务器上运行测试
-R
[远程服务器列表]在指定的远程服务器上运行测试
-g
[通往CSV文件的路径]只生成报表指示板
-e
负载测试后生成报表指示板
-o
输出文件夹,用于在负载测试后生成报告指示板。文件夹必须不存在或空,该脚本还允许你指定可选的防火墙/代理服务器信息:
-H
[代理服务器主机名或 IP 地址]
-P
[代理服务器端口]
2 构件测试计划
测试计划描述了当程序运行起来时JMeter会执行的一系列步骤,一个完整的测试计划会由以下几部分组成,包括一个或多个线程组、逻辑控制器、示例生成控制器、监听器、定时器、断言和配置元素
2.1 添加和删除元素
两种方式添加元素到测试计划
- 右键点击树上的元素,添加列表中选择一个新元素
- 菜单栏:文件-合并或打开从文件中加载元素
2.2 加载和保存元素
2.3 配置树元素
2.4 保存测试计划
2.5 运行一个测试计划
运行测试计划,从“运行”菜单选项中选择“启动”(Control + R)按钮。
2.6 停止测试
停止(Control + .)-尽可能立即停止线程。很多采样器会被中断这意味着那些活跃的采样器也会被立即终止。停止命令会检查在默认设置的5s超时的时间内是不是所有的线程都终止了。[这个默认时间是可以通过JMeter( jmeterengine.threadstop.wait)的属性设置的] 如果有线程没有终止,这时会有一条提示信息显示出来。停止命令会重试,如果还是失败,有必要通过直接退出JMeter去清理。
关闭(Control + ,)-请求在当前任何工作的末尾去结束线程,不会中途干扰活跃的采样器。 这种情况下关闭对话框会一直保持活跃直到所有的线程都终止。 如果关闭花费太长时间。关掉对话框选择 运行/停止 , 或者按下Control + ..
3 测试计划中的元素(elements of a test plan)
最小测试将包括测试计划、线程组和一个或多个采样器。
3.1 测试计划(Test Plan)
测试计划对象有一个叫 “功能测试” 的复选框,如果选择了,它将导致JMeter记录从服务器返回每个示例的数据。如果您在测试监听器中选择了一个文件,那么这些数据将被写入文件。如果您正在执行一个小的运行,以确保JMeter的配置正确,并且您的服务器正在返回预期的结果,那么这将非常有用。其结果是,文件将快速增长,JMeter的性能将受到影响。如果您正在进行压力测试(默认情况下是off),则该选项应该关闭。
3.2 线程组(Thread group)
线程组元素是任何测试计划的起点。所有控制器和采样器必须在线程组下。其他元素,例如侦听器,可以直接置于测试计划之下,在这种情况下,它们将适用于所有的线程组。顾名思义,线程组元素控制JMeter用来执行测试的线程的数量。线程组的控件允许:
- Set the number of threads: 设置线程数
- Set the ramp-up period:设置过渡时期
- Set the number of times to execute the test:设置执行测试的次数
4. 创建web测试计划
4.1 添加用户
设置过渡时期,保留默认值1:这个属性告诉Jmeter启动每个用户需要多长时间。例如,如果你设置过渡时期为5s,Jmeter将会在5s之内完成所有用户的启动。如果你设置了5个线程数,过渡期为5s,那么启动线程之间的过渡期将是1s(5用户/5s=每秒1个用户)。如果你设置这个值为0,那么JMeter将立即开启你所有的线程,中间没有间隔。
设置循环次数:选择循环2次,这个属性是告诉JMeter要重复测试多少次,如果你设置的值是1,JMeter将就跑一遍,如果选择‘永远’复选框的话,JMetre将重复运行测试计划。
4.2 添加HTTP请求默认值
选择JMeter用户(线程组)。点击你的鼠标右键来添加菜单,然后选择 “添加→配置元件→HTTP请求默认值”。然后选中HTTP请求默认值以查看其控制面板
4.3 加入Cookie支持
几乎所有的Web测试都应该使用cookie支持,除非你的应用程序不支持使用cookie,要添加cookie支持,只需在测试计划中为每个线程组添加一个HTTP cookie管理器即可。这将确保每个线程都有自己的cookie,但可以在所有HTTP请求对象之间共享。
添加HTTP cookie管理器,只需选择线程组,并选择 添加 → 配置元素 → HTTP Cookie管理器,无论是从编辑菜单,还是从右键弹出菜单都可以。
4.4 添加HTTP请求
两个HTTP请求。第一个是JMeter的home page(http://jmeter/apache.org/),另一个是changs page(http://jmeter.apache.org/changes.html)。
添加 → 采样器 → HTTP请求
4.5 增加一个结果监听器
监听器,此元素负责将HTTP请求的所有结果存储在文件中,并将数据以报表的形式呈现出来。
选择JMeter Users然后新增一个图标结果监听器(添加 → 监听器 → 图形结果),接下来,你需要指定输出文件的目录和文件名,你也可以选择浏览按钮并浏览到目录,然后输入文件名。
4.6 登录web站点
一般不用不必担心这个,但是一些网站要求你在允许你执行某些动作之前先登录。在Web浏览器中,登录将以表单显示为用户名和密码,以及提交的按钮。按钮生成一个POST请求,将表单项的值作为参数传递。
在JMeter要这样做,添加一个HTTP请求,并设置方法为POST。您需要知道表单和目标页面使用的字段的名称。这些可以通过检查登录页的代码来发现。如果这是很难做到,你可以使用 JMeter代理记录器记录登录序列。 设置提交按钮的目标路径。点击Add按钮两次并输入详细的用户名和密码。有时登录表单包含额外的隐藏字段。这些必须要加上。
测试结果:
5 构建一个高级web测试计划
5.1 使用URL重写用户session
如果你的 Web 应用程序,是使用URL重写而不是使用cookie保存session信息,那么你将需要做一点额外的设置来测试你的网站。
为了争取响应URL重写,JMeter 需要解析从服务器接受的 HTML,并检索唯一的 sessionID。
使用恰当的 HTTP URL 重写修改器来完成这项工作。只需要将sessionID参数名输入到修改器,jmeter会找到它并将它添加到每个请求中。如果请求已经有这个参数值,则会替换它。如果勾选Cache Session id?复选框,那么最后找到的sessionID将被保存,如果先前的http示例不包含sessionID,则会使用它。
5.2 使用头文件管理器
Jmeter的 HTTP头文件管理器,允许您自定义HTTP请求头文件,这个头文件包括“User-Agent”,”Pragma”, “Referer”等属性。
HTTP 头文件管理器,和 HTTP cookie 管理器类似,应该在线程组级别添加,除非出于特殊原因,您希望在测试中给某几个 HTTP 请求 设置不一样的头文件。
访问自己服务器主页:永远循环
1个线程:


5个线程


10个线程


20个线程


50个线程


100个线程


已经崩了

什么是Memcached?
免费和开源,高性能,分布式内存对象缓存系统,本质上是通用的,但旨在通过减轻数据库负载来加速动态Web应用程序。
Memcached是一个内存中的键值存储,用于从数据库调用,API调用或页面呈现的结果中获取任意数据(字符串,对象)的小块。
Memcached简单而强大。其简单的设计促进了快速部署,易于开发,并解决了大型数据缓存面临的许多问题。其API适用于大多数流行语言。
- 本质上,它是一个简洁的key-value存储系统。
- 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
windows安装
linux安装
还要安装libevent
ar -zxvf libevent-2.1.8-stable.tar.gz 解压
cd libevent-2.1.8-stable 进入解压后目录
./configure --prefix=/usr/local/libevent 部署,指定文件夹
make 编译
make install 安装
安装memcached
tar -zxvf memcached-1.5.9.tar.gz
cd memcached-1.5.9
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
make && make install
完成了memcached的安装:
看了师姐的日报,好像要进行spring整合,配置了一点,困了,明天再说。
明日计划:
spring配置memcached,学习radis
遇到问题:
缓存、高并发、分布式什么的刚接触还不明白,慢慢学习
今日收获:
主要是jmeter的一些简单的使用。
评论