第一.jmeter的目录结构
printable_docs---文档
extras--- 目录对构造ant工具的支持,实现批量运行脚本,把运行jmeter生成一个结果文件结果.jtl文件,放到extras下,运行命令:ant -Dtest=文件名 report
文件名不带jtl后缀
D:\apache-jmeter-2.9\extras>ant -Dtest=result report
Buildfile: D:\apache-jmeter-2.9\extras\build.xml
_message_xalan:
xslt-report:
[xslt] Processing D:\apache-jmeter-2.9\extras\result.jtl to D:\apache-jmete
r-2.9\extras\result.html
[xslt] Loading stylesheet D:\apache-jmeter-2.9\extras\jmeter-results-detail
-report_21.xsl
verify-images:
copy-images:
report:
[echo] Report generated at 2015/07/07 17:26
BUILD SUCCESSFUL
Total time: 1 second
extras 文件下生成一个 result.html 文件
lib--存放jar包(公用包) ,包括两个子目录 ext 、junit 文件夹,ext目录下存放一下重要的jar或者是依赖jar包、jmeter元件和补丁(如测试数据的的jdbc 的jar),junit文件夹存放junit相关jar
第二 非GUI模式(命令行模式)参数
-n : 指明jmeter以非GUI模式启动
-t : jmx文件名称
-l :jtl 文件名称
-j :jmeter日志文件名称
-r : 在jmeter属性“remote_hosts”中定义的服务器上远程运行测试脚本
-R : 在指定的远程服务器上运行测试
-H : 代理服务器主机名称或者ip
-P: 代理服务器端口号
第三.jmeter常用属性
bin下有jmeter属性文件:system.properties user.properties jmeter.properties
jmeter.properties 文件中包括常用参数
#remote_hosts=localhost:1099,localhost:2010 配置多台加压服务器
xml.parser=org.apache.xerces.parsers.SAXParser 用户指定xml解析器
ot_in_menu=HTML Parameter Mask,HTTP User Parameter Modifier 指明测试人员的不想在jmeter菜单中看到的测试元件列表
search_paths=/app1/lib;/app2/lib jmeter扩展类的路径
user.classpath jmeter搜索公用类的路径列表
user.properties 包含有补充jmeter属性的文件名,该属性文件将在初始属性文件之后加载,但会相遇-q 和-J选项处理
system.properties 包括有补充系统属性的问题件,该属性文件会优先于-S 和-D 选项处理
第四.jmeter快捷键
ctrl +r 开始运行
Ramp-Up Period 为100秒,jmeter就会在100秒内启动所有的进程
第五.函数助手
函数助手:
__regexFunction 正则表达式函数可以使用正则表达式(用户提供的)来解析前面的服务器响应(或者是弄个变量值),函数会返回一个有模板的字符串,其中携带有可变的值。__regexFunction 还可以被用来保存值。
__counter 每次调用计数器函数都会产生一个新的值,从1开始每次加1
__threadNum 函数只是简单返回当前线程的编号,线程编号不依赖于线程组,这就意味着从函数的角度看,某个线程组的线程#1和两一个线程组的线程#1没有区别的
__intSun 可以被用来计算两个或者更多整数值的和
__longSun 可以被用来计算两个或者更多长整型值的和
__StringFromFile 可以被用来从文本文件中读取字符串,这对于需要大量可变数据的测试很有用。
__machineName 返回本机的主机名
__javaScript 可以用于执行javascript代码的片段(非java),并返回结果值
__Random 会返回指定最大值和最小值之间的随机数
__CSVRead 会从csv文件中读取一个字符串
__property 返回一个jmeter属性值,如果函数找不 到属性值,而又没有提供默认值,则它会返回属性的名称
__P 是一个简化版的属性函数,目的是使用命令行中定义的属性,不同于函数property,本函数没有提供选项用于设置保存属性值的变量
__log 会记录一条日志,并返回函数的输入字符串
__BeanShell 会执行传递给它的脚步,并返回结果
${__BeanShell(source("function.bsh"))}:行在function.bsh中的脚步-----jmeter中文本字符串及代表文本字符串的jmeter变量添加必须用引号
__plit 会通过分隔符来拆分传递给它的字符串,并返回原始的字符串。
__Xpath 读取xml文件,并在文件中需找制定xpath相匹配的地方,每次调用函数一次,就会返回一个匹配项
__setProperty 用于设置jmeter属性值,函数的默认返回值是空字符串
__time 可以通过多种格式返回当前时间
__jexl 可以用例执行通过jexl表达试,并返回执行结果
__V 可以用于执行变量名表达式,并返回执行结果
__evalVar 可以用来执行保存在变量中的表达式,并返回执行结果
__eval 可以用例执行一个字符串表达式,并返回执行结果
__char 会将一串数字翻译成Unicode字符
__unescape 用于反转义java-escaped 字符串。
__unescapeHtml 用于反转义一个包含html实体的字符串,将其变成包含实际Unicode字符串,支持html4.0的实体
__escapeHtml 用于转义字符串中的字符(使用HTML实体),支持HTML4.0实体
__fileToString 可以被用来读取整个文件。每次对该函数的调用,都是读整个文件
第六.ant批量运行jmeter脚本
将jmeter项目对应的.jmx文件,放到extras目录下,即可使用Ant实现测试的自动化
(前提:查看是否安装ant 命令:ant -version)
ant -Dtest=测试案例名称 :运行测试案例并生产报表
ant -Dtest=测试案例名称 run :只运行测试案例
ant -Dtest=测试案例名称 report :只生产测试报告(需要把测试采样数据.ttl文件放到ant目录下)