当前位置: 首页 > 知识库问答 >
问题:

如何使用Java代码在Jmeter.jmx文件中添加regex提取器和cookie管理器?

公西马鲁
2023-03-14
HashTree testPlanTree = new ListedHashTree();
        TestPlan testPlan = new TestPlan("Create JMeter Script From Java Code");
        testPlanTree.add(testPlan);
        HTTPSamplerProxy newSampler = null;
        LoopController loopController;
        ThreadGroup threadGroup = null;
        HashTree threadGroupHashTree = null;
        int i = 1; // exclude the first empty call
        for (ArrayList<String> elementList : calls) {
            if (elementList.size() == 3) {
                System.out.println(elementList);
                loopController = new LoopController();
                loopController.setLoops(1);
                loopController.setFirst(true);
                loopController.setProperty(TestElement.TEST_CLASS, LoopController.class.getName());
                loopController.setProperty(TestElement.GUI_CLASS, LoopControlPanel.class.getName());
                loopController.initialize();

                threadGroup = new ThreadGroup();
                threadGroup.setName(elementList.get(1) + "_" + elementList.get(2));
                threadGroup.setNumThreads(1);
                threadGroup.setRampUp(1);
                threadGroup.setSamplerController(loopController);
                threadGroup.setProperty(TestElement.TEST_CLASS, ThreadGroup.class.getName());
                threadGroup.setProperty(TestElement.GUI_CLASS, ThreadGroupGui.class.getName());
                testPlan.setProperty(TestElement.TEST_CLASS, TestPlan.class.getName());
                testPlan.setProperty(TestElement.GUI_CLASS, TestPlanGui.class.getName());
                testPlan.setUserDefinedVariables((Arguments) new ArgumentsPanel().createTestElement());

                threadGroupHashTree = testPlanTree.add(testPlan, threadGroup);
            }
            else {
                newSampler = new HTTPSamplerProxy();
                LinkedHashMap<String, ArrayList<String>> arguments = httpSamplerList.get(i);
                if (elementList.get(0).equals("Login")) {
                    newSampler.setMethod(arguments.get("HTTPSampler.method").get(0));
                    newSampler.add
                }

                else if  (elementList.get(0).equals("Logout"))
                    newSampler.setMethod(arguments.get("HTTPSampler.method").get(0));
                else
                    newSampler.setMethod(elementList.get(0));

                System.out.println(httpSamplerList.get(i));

                newSampler.setPort(8080);
                newSampler.setPath(arguments.get("HTTPSampler.path").get(0));
                newSampler.setName(elementList.get(0)); // currently use a integer number naming as test
                newSampler.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName());
                newSampler.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName());

                // Set up arguments
                if (arguments.get("arguments").size() > 0) {
                    if (arguments.get("HTTPSampler.method").get(0).equals("GET")) {
                        for (int j = 0; j < arguments.get("arguments").size(); j=j+2) {
                            newSampler.addArgument(arguments.get("arguments").get(j), arguments.get("arguments").get(j+1));
                        }
                    }
                    else if (arguments.get("HTTPSampler.method").get(0).equals("POST")||arguments.get("HTTPSampler.method").get(0).equals("PUT")) {
                        newSampler.addNonEncodedArgument("",arguments.get("arguments").get(0) , "");
                        newSampler.setPostBodyRaw(true);
                    }
                }
                threadGroupHashTree.add(newSampler);
                i++;
            }
        }

共有1个答案

董新觉
2023-03-14

>

  • HTTP Cookie管理器:

    CookieManager cookieManager = new CookieManager();
    cookieManager.setName("HTTP Cookie Manager");
    cookieManager.setProperty(TestElement.TEST_CLASS, CookieManager.class.getName());
    cookieManager.setProperty(TestElement.GUI_CLASS, CookiePanel.class.getName());
    

    正则表达式提取器

    RegexExtractor regexExtractor = new RegexExtractor();
    regexExtractor.setName("Regular Expression Extractor");
    regexExtractor.setProperty("RegexExtractor.useHeaders", "false");
    regexExtractor.setProperty("RegexExtractor.refname", "yourVariable");
    regexExtractor.setProperty("RegexExtractor.regex", "yourRegex");
    regexExtractor.setProperty("RegexExtractor.template", "yourTemplate");
    regexExtractor.setProperty("RegexExtractor.match_number", "yourMatchNumber");
    regexExtractor.setProperty("RegexExtractor.default", "yourDefaultValue");
    regexExtractor.setProperty(TestElement.TEST_CLASS, RegexExtractor.class.getName());
    regexExtractor.setProperty(TestElement.GUI_CLASS, RegexExtractorGui.class.getName());
    

    查看五种不使用JMeter GUI启动JMeter测试的方法,以了解更多关于运行JMeter测试的不同选项,包括以编程方式创建测试计划。

  •  类似资料:
    • 比如,我尝试过在jmeter应用程序中添加keystore.jks文件,方法是转到Options 比如有没有办法补充。jks文件通过Java代码使用jmeter库,以便实现类似的事情,我在jmeter应用程序? 这就是我尝试使用jmeter库进行java,ALIAS_VALUE,ENDPOINT_VALUE,CONTENT_PATH_VALUE,API_KEY_VALUE用于掩盖安全问题的原始值。

    • 问题内容: 关于一个主题,人们可以使用新语言Swift轻松查看如何在Web视图中管理Cookie呢?如果您在Internet上签到,则在需要实现此功能时不会发现任何有趣的东西。甚至苹果公司的文件也很差。 有人知道如何在Swift中处理这些过程吗?这是我在Obj-C中找到的: 查看存储的Cookie 删除存储的Cookie 如果我们能给出一次答案的话,对每个人都很好!干杯! 问题答案: 试试这个代码

    • 问题内容: 我有一个.dll文件,必须在Java中使用。该.dll文件具有参数化方法,该方法应将类型返回为字符串。当我将参数传递给它时,我得到的消息是 这是代码… 问题答案: 只需在项目中添加引用即可。和名称空间在顶部..然后您可以访问所有dll方法。如果您使用的是Eclispe,请右键单击您的项目->然后单击“构建路径”->,然后单击“添加库”,然后单击用户库。 在这里您可以导入dll

    • 问题内容: 我准备使用Java创建文件浏览器。目的是尽可能地模仿默认资源管理器的行为,无论底层操作系统是什么。 我没有用Java完成GUI编程。 我查找了Swing,SWT和JFace,并从本教程开始我的项目:http : //www.ibm.com/developerworks/opensource/library/os- ecgui1/ 我想知道您对解决此问题的最佳方法的看法。如果您可以评论编

    • 这里的问题是,我为整个控制器设置了cookie管理器,而不是获得实际数据,我获得的是cookie中变量的名称“.authToken=${auth}”。 我猜原因是当测试到达Cookie管理器时没有声明变量,但我希望jmeter足够聪明,在到达正则表达式提取器时声明变量。 结构 null 唯一一次它似乎正常工作是当我在http请求中设置了Cookie管理器并禁用了“main”Cookie管理器(用于

    • 本文向大家介绍java编写的文件管理器代码分享,包括了java编写的文件管理器代码分享的使用技巧和注意事项,需要的朋友参考一下 比较适合新手。逻辑上仍然有点问题。可以用于学习java文件操作 下载地址:http://yun.baidu.com/share/link?shareid=4184742416&uk=1312160419 下面是主要的JAVA文件操作代码 FileHelp.java 以上所