1、添加HTTPS请求
协议是https,端口是443
2、添加HTTP代理服务器
(1)、 右键-》添加-》非测试元件-》HTTP代理服务器-》,设置端口号,默认8888,要保证此端口号未被占用。选择目标控制器以及分组,点击最下面的【启动】,启动代理服务器:
在jmeter存放jmx文件的目录下生成了一个ApacheJMeterTemporaryRootCA.crt 的证书。
(2)、然后设置sample的proxy server 值
设置值localhost 端口号8888 。
3、逻辑处理器
【1】简单逻辑处理器:最简单的逻辑控制器,相当于一个块儿;
【2】foreach逻辑处理器:根据一个指定的变量来对请求进行循环;
定义用户变量的规则:
若勾选foreach的add "_" brfore number? 则定义为 变量名_循环索引 ,索引一般从1开始;
若不勾选,则变量名和循环索引中间没有"_" ;
【3】仅一次处理器:在设置线程组循环多次的情况下,若添加此控制器,那么此控制器下的请求只会执行一次(通常用于登陆模块 )
【4】事务控制器:
勾选“Generate parent sample”,则事务控制器下所有请求的结果均会展示在父节点上;
勾选”“include duration of timer and ...",
【5】if控制器 : 判断控制的作用
判断返回结果是否满足这个表达式(JavaScript),满足,则执行内部的逻辑:
【6】switch控制器: 选择该控制器下一个子节点采样器执行,
可以选择通过节点id (从0开始);也可以通过采样器名称,为空时是执行第一个元素。
【7】吞吐量控制器
”Total Executions“:设置运行的次数;" percent executions":设置运行比例(1~100)。
【随机控制器】:随机选取一个子节点进行执行
如以下:循环5次,每次随机选择采样器执行
【随即顺序控制器】:随机的把所有子节点均执行一次或多次(根据线程组循环次数定);
与random controller 区别在于,random controller 每次循环只执行子节点中的一个随机子节点。
应用:页面随机访问,且均要被访问。
【critical section controller】作用:用于核心部分的控制,确保其子节点下的取样器或控制器在一个线程中仅会执行一次
若锁的名字相同,则认为是同个锁,
可以看到,TI请求都没有同时执行,都是隔了几个请求再执行。
【Interleave controller】作用:交替控制器使得该控制器包含的取样器步骤交错执行在每个循环中,每个线程用户仅执行一次控制器内的请求,线程用户依据循环的次数请求控制器中的请求数
可以看到T1、T2是交替执行的。
【模块控制器】:用于跳转到选定控制器位置并执行对应的控制器
应用:业务逻辑之间跳转
===========================================================================================
jmeter 配置元件
1、http信息头管理器
用来配置一些请求的头部信息
2、HTTP Request Defaults(请求默认值)
可以设置其作用范围内的所有HTTP的默认值,可被设置的内容包括HTTP请求的host、端口、协议等
可省去重复的设置服务器ip、端口等步骤。
3、HTTP Authorization Manager(授权管理器)
设置http请求的授权Authorization
如果直接再http请求头管理器里面添加Authorization,是一样的效果。
4、JDBC Connection Configuration
不同的数据库类型有不同的JDBC驱动:
Datebase | Driver class | Database URL |
MySQL | com.mysql.jdbc.Driver | jdbc:mysql://host:port/{dbname} |
PostgreSQL | org.postgresql.Driver | jdbc:postgresql:{dbname} |
Oracle | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:user/pass@//host:port/service |
Ingres (2006) | ingres.jdbc.IngresDriver | jdbc:ingres://host:port/db[;attr=value] |
MSSQL(Microsoft SQL Server) | com.microsoft.sqlserver.jdbc.SQLServerDriver 或者 net.sourceforge.jtds.jdbc.Driver | jdbc:sqlserver://IP:1433;databaseName=DBname 或者jdbc:jtds:sqlserver://localhost:1433/"+"lib
|
顺便说下JDBC request:
JDBC Request 参数说明:
Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致
Query Type:此处支持方式多样,可以用于添加或者筛选数据,根据需要和Query配合使用;
Query:经测试,填写的sql语句未尾加不加“;”都可以
Parameter values:参数值,顺序替代Query中的?; 可用多个?
Parameter types:参数类型,可参考:Javadoc for java.sql.Types
Variable names:保存sql语句返回结果的变量名 ,用于作为参数供调用
注:若用a,b,c...等代替每列,那么a_#代表这列的条数;a_1,a_2..分别代表这列第几行的数据。
Result variable name:创建一个对象变量,保存所有返回的结果 ,供调用;
Query timeout:查询超时时间
Handle result set:定义如何处理由callable statements语句返回的结果
appendix========================================
如果需要jmeter里数据库查询语句里面中文,那么需要在连接数据库的DataBase URL 里指定下字符集,才可以查询出数据。
加上:?useUnicode=true&characterEncoding=utf8
5、TCP取样器配置
结合tcp取样器使用
TCPClient classname 有3种设置:
1、TCPClientImpl:文本数据 ;2、BinaryTCPClientImpl:传输二进制数据,指定包结束符。(常用)
3、LengthPrefixedBinaryTCPClientImpl:数据包中前2个字节为数据长度。可在bin/jmeter.properties配置文件中tcp.binarylength.prefix.length设置。
5、keystore configuration 证书配置
preload:是否预加载keystore,最好选true
variable name holding certificate alias:一个代表客户端证书的变量,可以通过CSV data set方式来给参数赋值
alias start index:keystore的开始
alias end index:keystore的结束,要确保这个长度要足够大于指定的keystore长度。
6、LDAP Extended Request Defaults /LDAP 请求默认值
首先,LDAP是LightWeight directory access protocol(轻量级目录访问协议),以树状的层次结构来存储数据。
DN : 基准DN,常用公司域名作为基准DN,例:dc=foobar, dc=com
ou: organization unit(相当于公司下面的一些部门)
cn: common name(一个记录项的别名)
Attribute | Description | Required |
---|---|---|
Name | Descriptive name for this sampler that is shown in the tree. | No |
Server Name or IP | Domain name or IP address of the LDAP server. JMeter assumes the LDAP server is listening on the default port(389). | Yes |
Port | default port(389). | Yes |
root DN | DN for the server to communicate | Yes |
Username | LDAP server username. | Usually |
Password | LDAP server password. (N.B. this is stored unencrypted in the test plan) | Usually |
Entry DN | the name of the context to create or Modify; may not be empty Example: do you want to add cn=apache,ou=test you have to add in table name=cn, value=apache | Yes |
Delete | the name of the context to Delete; may not be empty | Yes |
Search base | the name of the context or object to search | Yes |
Search filter | the filter expression to use for the search; may not be null | Yes |
add test | this name, value pair to added in the given context object | Yes |
modify test | this name, value pair to add or modify in the given context object |
7、DNS Cache Manger
作用:第一次访问一个网站的时候,DNS服务器要通过别的服务器去查询网站所对应的IP,这个查询的时间会比较长,同时DNS服务器就把该网站和其对应的IP存储在DNS cache里面了。当你第二次访问时DNS服务器就直接从cache里面找对应的IP,这样访问该网站的速度就会快很多。
8、Java 请求默认值/ Java请求
作用:调用Java类,获取返回结果
9、Variables From CSV File
从CSV文件中读取变量,和CSV Data Set Config 有些区别,前者的变量名和变量值都是在文件中设置,后者只是变量值在文件中设置。