- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我尝试使用标准 jmeter 报告模板 XSL(jmeter-results-detail-report_21.xsl) 生成 jmeter 报告,但不知何故,报告无法将 httpSample/httpSample 的子子项显示为 httpSample 的分割。
是否有办法显示子子 httpSample/httpSample 结果作为其父 httpSample 的分割?
我有一个想法,将子子 lb 值替换为其父 lb 值,以使其独一无二。但是我该如何做呢,因为我是 java/regex/XSL 的新手。
below is original jtl
<sample t="1605" it="15032" lt="0" ct="0" ts="1567595832665" s="true" lb="A02 Landing" rc="200" rm="Number of samples in transaction : 3, number of failing samples : 0" tn="Thread Group 1-1" dt="" by="70695" sby="3136" ng="2" na="2">
<httpSample t="649" it="0" lt="629" ct="440" ts="1567595837679" s="true" lb="A02.01 /abcd/login.action?do=Login" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="2094" sby="1671" ng="2" na="2">
<httpSample t="629" it="0" lt="629" ct="440" ts="1567595837679" s="true" lb="https://10.111.11.111:7351/abcd/login.action?do=Login" rc="302" rm="Moved Temporarily" tn="Thread Group 1-1" dt="text" by="856" sby="1001" ng="2" na="2"/>
<httpSample t="18" it="0" lt="18" ct="0" ts="1567595838310" s="true" lb="https://10.111.11.111:7351/abcd/HandlerInit.action?do=Redirect" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="1238" sby="670" ng="2" na="2"/>
</httpSample>
<httpSample t="549" it="0" lt="533" ct="137" ts="1567595843333" s="true" lb="A02.02 /abcd/HandlerLogin.action?do=InitLoad" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="34332" sby="794" ng="2" na="2"/>
<httpSample t="407" it="0" lt="402" ct="332" ts="1567595848894" s="true" lb="A02.03 /abcd/message_board.action" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="34269" sby="671" ng="2" na="2"/>
</sample>
<sample t="5863" it="15038" lt="0" ct="0" ts="1567595835027" s="true" lb="A03 Landing 2" rc="200" rm="Number of samples in transaction : 3, number of failing samples : 0" tn="Thread Group 1-2" dt="" by="70695" sby="3136" ng="2" na="2">
<httpSample t="609" it="0" lt="290" ct="142" ts="1567595840037" s="true" lb="A03.01 /abcd/login.action?do=Login2" rc="200" rm="OK" tn="Thread Group 1-2" dt="text" by="2094" sby="1671" ng="2" na="2">
<httpSample t="290" it="0" lt="290" ct="142" ts="1567595840037" s="true" lb="https://10.111.11.111:7351/abcd/login.action?do=Login2" rc="302" rm="Moved Temporarily" tn="Thread Group 1-2" dt="text" by="856" sby="1001" ng="2" na="2"/>
<httpSample t="318" it="0" lt="318" ct="0" ts="1567595840328" s="true" lb="https://10.111.11.111:7351/abcd/HandlerInit.action?do=Redirect2" rc="200" rm="OK" tn="Thread Group 1-2" dt="text" by="1238" sby="670" ng="2" na="2"/>
</httpSample>
<httpSample t="2064" it="0" lt="1323" ct="342" ts="1567595845660" s="true" lb="A03.02 /abcd/HandlerLogin.action?do=InitLoad" rc="200" rm="OK" tn="Thread Group 1-2" dt="text" by="34332" sby="794" ng="2" na="2"/>
<httpSample t="3190" it="0" lt="1302" ct="333" ts="1567595852737" s="true" lb="A03.03 /abcd/message_board.action" rc="200" rm="OK" tn="Thread Group 1-2" dt="text" by="34269" sby="671" ng="2" na="2"/>
</sample>
expected result as below. It's will be few hundred thousand row need to be replace. Is there any way to replace it?
<sample t="1605" it="15032" lt="0" ct="0" ts="1567595832665" s="true" lb="A02 Landing" rc="200" rm="Number of samples in transaction : 3, number of failing samples : 0" tn="Thread Group 1-1" dt="" by="70695" sby="3136" ng="2" na="2">
<httpSample t="649" it="0" lt="629" ct="440" ts="1567595837679" s="true" lb="A02.01 /abcd/login.action?do=Login" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="2094" sby="1671" ng="2" na="2">
<httpSample t="629" it="0" lt="629" ct="440" ts="1567595837679" s="true" lb="A02.01 https://10.111.11.111:7351/abcd/login.action?do=Login" rc="302" rm="Moved Temporarily" tn="Thread Group 1-1" dt="text" by="856" sby="1001" ng="2" na="2"/>
<httpSample t="18" it="0" lt="18" ct="0" ts="1567595838310" s="true" lb="A02.01 https://10.111.11.111:7351/abcd/HandlerInit.action?do=Redirect" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="1238" sby="670" ng="2" na="2"/>
</httpSample>
<httpSample t="549" it="0" lt="533" ct="137" ts="1567595843333" s="true" lb="A02.02 /abcd/HandlerLogin.action?do=InitLoad" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="34332" sby="794" ng="2" na="2"/>
<httpSample t="407" it="0" lt="402" ct="332" ts="1567595848894" s="true" lb="A02.03 /abcd/message_board.action" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="34269" sby="671" ng="2" na="2"/>
</sample>
<sample t="5863" it="15038" lt="0" ct="0" ts="1567595835027" s="true" lb="A03 Landing 2" rc="200" rm="Number of samples in transaction : 3, number of failing samples : 0" tn="Thread Group 1-2" dt="" by="70695" sby="3136" ng="2" na="2">
<httpSample t="609" it="0" lt="290" ct="142" ts="1567595840037" s="true" lb="A03.01 /abcd/login.action?do=Login2" rc="200" rm="OK" tn="Thread Group 1-2" dt="text" by="2094" sby="1671" ng="2" na="2">
<httpSample t="290" it="0" lt="290" ct="142" ts="1567595840037" s="true" lb="A03.01 https://10.111.11.111:7351/abcd/login.action?do=Login2" rc="302" rm="Moved Temporarily" tn="Thread Group 1-2" dt="text" by="856" sby="1001" ng="2" na="2"/>
<httpSample t="318" it="0" lt="318" ct="0" ts="1567595840328" s="true" lb="A03.01 https://10.111.11.111:7351/abcd/HandlerInit.action?do=Redirect2" rc="200" rm="OK" tn="Thread Group 1-2" dt="text" by="1238" sby="670" ng="2" na="2"/>
</httpSample>
<httpSample t="2064" it="0" lt="1323" ct="342" ts="1567595845660" s="true" lb="A03.02 /abcd/HandlerLogin.action?do=InitLoad" rc="200" rm="OK" tn="Thread Group 1-2" dt="text" by="34332" sby="794" ng="2" na="2"/>
<httpSample t="3190" it="0" lt="1302" ct="333" ts="1567595852737" s="true" lb="A03.03 /abcd/message_board.action" rc="200" rm="OK" tn="Thread Group 1-2" dt="text" by="34269" sby="671" ng="2" na="2"/>
</sample>
最佳答案
也许正则表达式不是解决这个问题的最佳方法,因为它看起来相当复杂。
<小时/>话虽这么说, parent 在行首有两个空格,而“子 child ”似乎有四个空格,如果您愿意,您可以将其用作左边界,并设计任何必须的表达式,例如:
^\s{2}<httpSample\s+.*?lb="(\S*).*[\r\n]^\s{4}<httpSample\s+.*?lb="([^"]*)"
仅作为示例。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class re{
public static void main(String[] args){
final String regex = "^\\s{2}<httpSample\\s+.*?lb=\"(\\S*).*[\\r\\n]^\\s{4}<httpSample\\s+.*?lb=\"([^\"]*)\"";
final String string = "<sample t=\"1605\" it=\"15032\" lt=\"0\" ct=\"0\" ts=\"1567595832665\" s=\"true\" lb=\"A02 Landing\" rc=\"200\" rm=\"Number of samples in transaction : 3, number of failing samples : 0\" tn=\"Thread Group 1-1\" dt=\"\" by=\"70695\" sby=\"3136\" ng=\"2\" na=\"2\">\n"
+ " <httpSample t=\"649\" it=\"0\" lt=\"629\" ct=\"440\" ts=\"1567595837679\" s=\"true\" lb=\"A02.01 /abcd/login.action?do=Login\" rc=\"200\" rm=\"OK\" tn=\"Thread Group 1-1\" dt=\"text\" by=\"2094\" sby=\"1671\" ng=\"2\" na=\"2\">\n"
+ " <httpSample t=\"629\" it=\"0\" lt=\"629\" ct=\"440\" ts=\"1567595837679\" s=\"true\" lb=\"https://10.111.11.111:7351/abcd/login.action?do=Login\" rc=\"302\" rm=\"Moved Temporarily\" tn=\"Thread Group 1-1\" dt=\"text\" by=\"856\" sby=\"1001\" ng=\"2\" na=\"2\"/>\n"
+ " <httpSample t=\"18\" it=\"0\" lt=\"18\" ct=\"0\" ts=\"1567595838310\" s=\"true\" lb=\"https://10.111.11.111:7351/abcd/HandlerInit.action?do=Redirect\" rc=\"200\" rm=\"OK\" tn=\"Thread Group 1-1\" dt=\"text\" by=\"1238\" sby=\"670\" ng=\"2\" na=\"2\"/>\n"
+ " </httpSample>\n"
+ " <httpSample t=\"549\" it=\"0\" lt=\"533\" ct=\"137\" ts=\"1567595843333\" s=\"true\" lb=\"A02.02 /abcd/HandlerLogin.action?do=InitLoad\" rc=\"200\" rm=\"OK\" tn=\"Thread Group 1-1\" dt=\"text\" by=\"34332\" sby=\"794\" ng=\"2\" na=\"2\"/>\n"
+ " <httpSample t=\"407\" it=\"0\" lt=\"402\" ct=\"332\" ts=\"1567595848894\" s=\"true\" lb=\"A02.03 /abcd/message_board.action\" rc=\"200\" rm=\"OK\" tn=\"Thread Group 1-1\" dt=\"text\" by=\"34269\" sby=\"671\" ng=\"2\" na=\"2\"/>\n"
+ "</sample>\n"
+ "<sample t=\"5863\" it=\"15038\" lt=\"0\" ct=\"0\" ts=\"1567595835027\" s=\"true\" lb=\"A03 Landing 2\" rc=\"200\" rm=\"Number of samples in transaction : 3, number of failing samples : 0\" tn=\"Thread Group 1-2\" dt=\"\" by=\"70695\" sby=\"3136\" ng=\"2\" na=\"2\">\n"
+ " <httpSample t=\"609\" it=\"0\" lt=\"290\" ct=\"142\" ts=\"1567595840037\" s=\"true\" lb=\"A03.01 /abcd/login.action?do=Login2\" rc=\"200\" rm=\"OK\" tn=\"Thread Group 1-2\" dt=\"text\" by=\"2094\" sby=\"1671\" ng=\"2\" na=\"2\">\n"
+ " <httpSample t=\"290\" it=\"0\" lt=\"290\" ct=\"142\" ts=\"1567595840037\" s=\"true\" lb=\"https://10.111.11.111:7351/abcd/login.action?do=Login2\" rc=\"302\" rm=\"Moved Temporarily\" tn=\"Thread Group 1-2\" dt=\"text\" by=\"856\" sby=\"1001\" ng=\"2\" na=\"2\"/>\n"
+ " <httpSample t=\"318\" it=\"0\" lt=\"318\" ct=\"0\" ts=\"1567595840328\" s=\"true\" lb=\"https://10.111.11.111:7351/abcd/HandlerInit.action?do=Redirect2\" rc=\"200\" rm=\"OK\" tn=\"Thread Group 1-2\" dt=\"text\" by=\"1238\" sby=\"670\" ng=\"2\" na=\"2\"/>\n"
+ " </httpSample>\n"
+ " <httpSample t=\"2064\" it=\"0\" lt=\"1323\" ct=\"342\" ts=\"1567595845660\" s=\"true\" lb=\"A03.02 /abcd/HandlerLogin.action?do=InitLoad\" rc=\"200\" rm=\"OK\" tn=\"Thread Group 1-2\" dt=\"text\" by=\"34332\" sby=\"794\" ng=\"2\" na=\"2\"/>\n"
+ " <httpSample t=\"3190\" it=\"0\" lt=\"1302\" ct=\"333\" ts=\"1567595852737\" s=\"true\" lb=\"A03.03 /abcd/message_board.action\" rc=\"200\" rm=\"OK\" tn=\"Thread Group 1-2\" dt=\"text\" by=\"34269\" sby=\"671\" ng=\"2\" na=\"2\"/>\n"
+ "</sample>";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Full match: <httpSample t="649" it="0" lt="629" ct="440" ts="1567595837679" s="true" lb="A02.01 /abcd/login.action?do=Login" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="2094" sby="1671" ng="2" na="2">
<httpSample t="629" it="0" lt="629" ct="440" ts="1567595837679" s="true" lb="https://10.111.11.111:7351/abcd/login.action?do=Login"
Group 1: A02.01
Group 2: https://10.111.11.111:7351/abcd/login.action?do=Login
Full match: <httpSample t="609" it="0" lt="290" ct="142" ts="1567595840037" s="true" lb="A03.01 /abcd/login.action?do=Login2" rc="200" rm="OK" tn="Thread Group 1-2" dt="text" by="2094" sby="1671" ng="2" na="2">
<httpSample t="290" it="0" lt="290" ct="142" ts="1567595840037" s="true" lb="https://10.111.11.111:7351/abcd/login.action?do=Login2"
Group 1: A03.01
Group 2: https://10.111.11.111:7351/abcd/login.action?do=Login2
<小时/>
<小时/>If you wish to explore/simplify/modify the expression, it's been explained on the top right panel of regex101.com. If you'd like, you can also watch in this link, how it would match against some sample inputs.
关于java - 如何使用java将jmeter jtl httpSample/httpSample子子值替换为父值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57815940/
我正在尝试通过下面的 ant cmd 运行我的 Test.jmx 文件:C:\apache-ant-1.10.1-bin\bin>ant 我收到以下错误: C:\apache-ant-1.10.1-b
我在非 GUI 模式下运行 JMeter 性能测试。我在 .jtl 文件中得到结果。是否有一种快速简便的方法可以从此文件生成汇总和汇总报告? 最佳答案 如果您使用的是 jmeter 3.2,请执行以下
我的测试配置: 循环 Controller --> Beanshell Sampler vars.put("test", "${__CSVRead(*test,0)}");
我有几个由 JMeter 测试运行产生的 .jtl 文件,我想为每个文件创建一个图表。我不想手动执行此操作,而是想在 java 中以编程方式执行此操作。 我迷失在 JMeter API 及其 GUI
在具有 100 个线程和 3 个从属线程的线程组的分布式测试中。我看到在测试中它生成了 300 个线程来执行测试,因为线程组由每个从属执行。但是,当我使用 JTL 捕获结果时,它在测试期间仅报告 10
如何为每次运行生成单独的 .jtl 结果文件。以下是我使用 jenkins 作业(性能趋势插件)运行的命令。 cd/apache-jmeter-2.13/bin./jmeter.sh -n -t/jm
编辑:Jmeter 版本:3.1 r1770033 我在 Jmeter 的以下问题上崩溃了。我尝试了几种选择,包括改变断言的顺序。目前还没有结果。 功能愿望 基本上,我希望 .jtl 日志文件反射(r
我尝试使用标准 jmeter 报告模板 XSL(jmeter-results-detail-report_21.xsl) 生成 jmeter 报告,但不知何故,报告无法将 httpSample/htt
我已经阅读了 jmeter 的最佳实践 - Disable all JMeter graphs as they consume a lot of memory. You can view all of
我正在尝试为现有结果(即 csv/jtl 文件)生成 JMeter Dashboard 图。 以下是 csv 文件内容(temp1.csv): timeStamp elapsed label
我需要在完成 jmeter 测试后创建一个 html 报告并将其发送到电子邮件。我通过控制台启动 jmeter 并创建 jtl 日志文件,然后将其传输到 html xsltproc /path/to/
我正在尝试从 Jenkins 运行 jmeter 测试。我已经安装了性能插件并重新启动了 jenkins。我不想使用任何 maven/ant。 执行shell命令 cd /Users/Shared/
我正在非 GUI 模式下运行 Jmeter。当我在 jmeter 中加载 result.jtl 文件时,我可以看到示例结果,但它没有给我采样器请求和响应数据。感谢帮助! 最佳答案 默认情况下,采样器请
我在这个位置打开了一个cmd窗口:C:\...\apache-jmeter-2.13\lib\ext 并运行此命令 C:\...\apache-jmeter-2.13\lib\ext>java -ja
我正在创建一个java类,它将启动Jmeter引擎并运行JMX文件并在.jtl文件中给我结果。但给定的 .jtl 文件仅向我提供以下数据 时间戳、耗时、标签、响应代码、响应消息、线程名称、数据类型、成
测试运行后,如何在 jmeter 中生成测试结果 (CSV) 文件和 JTL 文件。因为,这个 jtl 文件用于在 jmeter3.0 中生成 Dashboard 报告。 所以,请给我解决方案。 谢谢
java.lang.NoClassDefFoundError: com/mlawrie/yajtl/TUIOEvent at java.lang.Class.getDeclaredMethods0
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 8 年前。
当我在我的线程组上运行具有大量循环计数(15 个 HTTP 请求的 100 次迭代)的 JMeter 测试时,我从 JMeter 中获得了一个巨大的 JTL 文件。 这是我使用的 jmeter-mav
我有一个巨大的 jtl 文件 ~31GB 大小。此 jtl 文件位于 /opt 位置。 以下是两个linux命令的结果: [opt]$ df -h Filesystem
我是一名优秀的程序员,十分优秀!