在Idea中编写Jmeter JSR223脚本(Groovy)

  1. 在Idea中创建gradle项目
    在Idea中编写Jmeter JSR223脚本(Groovy)

  2. 在gradle.build文件中添加Jmeter相关依赖(以下是整个文件内容)

plugins {
    id 'groovy'
    id 'java'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
    mavenCentral()
}

def jmeterVersion = "5.3"
def withoutBom = {
    exclude group: 'org.apache.jmeter', module: 'bom'
}

dependencies {
    compile group: 'org.apache.jmeter', name: 'ApacheJMeter_core', version: "${jmeterVersion}", withoutBom
    compile group: 'org.apache.jmeter', name: 'ApacheJMeter_components', version: "${jmeterVersion}", withoutBom
    compile group: 'org.apache.jmeter', name: 'ApacheJMeter_java', version: "${jmeterVersion}", withoutBom
    compile group: 'org.apache.jmeter', name: 'ApacheJMeter_jdbc', version: "${jmeterVersion}", withoutBom
    compile group: 'org.apache.jmeter', name: 'ApacheJMeter_http', version: "${jmeterVersion}", withoutBom
    compile group: 'org.apache.jmeter', name: 'ApacheJMeter_junit', version: "${jmeterVersion}", withoutBom
    compile group: 'org.apache.jmeter', name: 'ApacheJMeter_native', version: "${jmeterVersion}", withoutBom
    compile 'org.codehaus.groovy:groovy-all:2.3.11'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

  1. 加载gradle配置
    在Idea中编写Jmeter JSR223脚本(Groovy)

  2. 在groovy文件中编写脚本
    在Idea中编写Jmeter JSR223脚本(Groovy)

  3. 附上JSR223脚本变量的来源

import org.apache.jmeter.assertions.AssertionResult
import org.apache.jmeter.protocol.http.control.Cookie
import org.apache.jmeter.protocol.http.sampler.HTTPSampleResult
import org.apache.jmeter.protocol.http.sampler.HTTPSampler
import org.apache.jmeter.threads.JMeterContext
import org.apache.jmeter.threads.JMeterVariables
import org.slf4j.Logger
import org.slf4j.LoggerFactory
//API文档
//https://jmeter.apache.org/api/org/apache/jmeter/samplers/Sampler.html
//https://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html
//https://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterVariables.html
//https://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html
//https://jmeter.apache.org/api/org/apache/jmeter/assertions/AssertionResult.html

def sampler = new HTTPSampler() /*Jmeter sampler*/
Logger log = LoggerFactory.getLogger("demo");   /*日志*/
def ctx = new JMeterContext()   /*非线程安全,仅适用于单线程*/
def vars = new JMeterVariables() /*vars*/
def props = new Properties()    /*props*/
def Label = "当前sampler名字"
def FileName = "当前脚本名字(如有)"
def SampleResult = new HTTPSampleResult()   /*SampleResult,出现于sampler*/
def prev  = new HTTPSampleResult() /*上一个SampleResult,出现于后置处理器*/
def OUT = System.out
def Parameters,args = "将参数传递给脚本中的参数";
def AssertionResult  = new AssertionResult("demo")  /*断言*/

def manager = sampler.getCookieManager()
def cookie = new Cookie("CookieName", "value", "demo.com", "/", false, 1617835225)
manager.add(cookie);
def cookieInManager = manager.get(0)
log.info(cookieInManager.getName())
log.info(cookieInManager.getValue())
上一篇:一个规则引擎的可视化方案


下一篇:学一个词:by far