jmeter java sampler测试java接口(一)javatest解读

  • jmeter在线api文档
    http://jmeter.apache.org/api/overview-summary.html
    首先分析javatest的源代码。
    getDefaultParameters()方法返回一个Arguments,这是获取入参的方法。在jmeter上创建一个java请求,选择javatest可以看到需要用户输入的参数都是在这设定的。
    1 每一个参数都必须先在类中声明为常量,常量值最好先赋值,如:
    private static final String SLEEP_NAME = “Sleep_Time”;
    jmeter窗口展示为Sleep_Time
    2 params.addArgument(SLEEP_NAME, String.valueOf(DEFAULT_SLEEP_TIME));
    (key)SLEEP_NAME - (value)用户传入/DEFAULT_SLEEP_TIME默认值
    3 通过context获取SLEEP_NAME的值
    sleepTime = context.getLongParameter(SLEEP_NAME, DEFAULT_SLEEP_TIME);
    4 当然类中还要声明
    private long sleepTime;
    public static final long DEFAULT_SLEEP_TIME = 100;
    上面4部实现了传参,sleepTime 就可以直接使用了。如果没有传值,则使用默认的100
    5 DEFAULT_SLEEP_TIME可以不申明,后面一节就没有使用默认值,代码也看起来简单点
 public Arguments getDefaultParameters() {
        Arguments params = new Arguments();
        params.addArgument(SLEEP_NAME, String.valueOf(DEFAULT_SLEEP_TIME));
        params.addArgument(MASK_NAME, DEFAULT_MASK_STRING);
        params.addArgument(LABEL_NAME, "");
        params.addArgument(RESPONSE_CODE_NAME, RESPONSE_CODE_DEFAULT);
        params.addArgument(RESPONSE_MESSAGE_NAME, RESPONSE_MESSAGE_DEFAULT);
        params.addArgument(SUCCESS_NAME, SUCCESS_DEFAULT);
        
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Java编写JMeter登录脚本的示例代码: ```java import org.apache.jmeter.config.Arguments; import org.apache.jmeter.protocol.http.control.CookieManager; import org.apache.jmeter.protocol.http.control.Header; import org.apache.jmeter.protocol.http.control.HeaderManager; import org.apache.jmeter.protocol.http.sampler.HTTPSampler; import org.apache.jmeter.protocol.http.util.HTTPConstants; import org.apache.jmeter.testelement.TestElement; import org.apache.jmeter.testelement.TestPlan; import org.apache.jmeter.testelement.ThreadGroup; import org.apache.jmeter.threads.JMeterContextService; import org.apache.jmeter.threads.JMeterVariables; import org.apache.jmeter.util.JMeterUtils; import org.apache.jorphan.collections.HashTree; import java.io.File; import java.io.FileOutputStream; public class LoginTest { public static void main(String[] args) throws Exception { // JMeter 配置文件路径 String jmeterConfigPath = "jmeter.properties"; // JMeter 脚本路径 String jmeterScriptPath = "login.jmx"; // JMeter 结果文件路径 String jmeterResultPath = "result.jtl"; // 初始化 JMeter JMeterUtils.loadJMeterProperties(new File(jmeterConfigPath).getPath()); JMeterUtils.setJMeterHome(new File(JMeterUtils.getJMeterHome()).getPath()); JMeterUtils.initLocale(); // 创建 TestPlan TestPlan testPlan = new TestPlan(); testPlan.setName("Login Test"); testPlan.setProperty(TestElement.TEST_CLASS, TestPlan.class.getName()); testPlan.setProperty(TestElement.GUI_CLASS, TestPlan.class.getName()); // 创建 ThreadGroup ThreadGroup threadGroup = new ThreadGroup(); threadGroup.setName("User Thread Group"); threadGroup.setNumThreads(1); threadGroup.setRampUp(1); threadGroup.setScheduler(false); threadGroup.setProperty(TestElement.TEST_CLASS, ThreadGroup.class.getName()); threadGroup.setProperty(TestElement.GUI_CLASS, ThreadGroup.class.getName()); // 创建 HTTPSampler HTTPSampler httpSampler = new HTTPSampler(); httpSampler.setName("Login"); httpSampler.setProperty(TestElement.TEST_CLASS, HTTPSampler.class.getName()); httpSampler.setProperty(TestElement.GUI_CLASS, HTTPSampler.class.getName()); httpSampler.setDomain("example.com"); httpSampler.setPort(80); httpSampler.setPath("/login"); httpSampler.setMethod(HTTPConstants.POST); httpSampler.addArgument("username", "test"); httpSampler.addArgument("password", "test123"); // 创建 CookieManager CookieManager cookieManager = new CookieManager(); cookieManager.setName("HTTP Cookie Manager"); cookieManager.setProperty(TestElement.TEST_CLASS, CookieManager.class.getName()); cookieManager.setProperty(TestElement.GUI_CLASS, CookieManager.class.getName()); // 创建 HeaderManager HeaderManager headerManager = new HeaderManager(); headerManager.setName("HTTP Header Manager"); headerManager.setProperty(TestElement.TEST_CLASS, HeaderManager.class.getName()); headerManager.setProperty(TestElement.GUI_CLASS, HeaderManager.class.getName()); headerManager.add(new Header("Content-Type", "application/x-www-form-urlencoded")); // 将各元素加入 TestPlan testPlan.addThreadGroup(threadGroup); threadGroup.addTestElement(httpSampler); threadGroup.addTestElement(cookieManager); threadGroup.addTestElement(headerManager); // 执行测试 HashTree hashTree = new HashTree(); hashTree.add(testPlan); JMeterVariables vars = new JMeterVariables(); JMeterContextService.getContext().setVariables(vars); JMeterContextService.getContext().setSamplingStarted(true); JMeterContextService.getContext().setEngineHashTree(hashTree); JMeterUtils.runTest(hashTree, new FileOutputStream(jmeterResultPath), true); } } ``` 此代码将模拟登录表单提交,并使用 CookieManager 和 HeaderManager 管理 cookie 和 header。你需要根据实际情况修改代码中的域名、路径、参数等信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值