在 pylot 的 testcases.xml 中编写正则表达式的问题

Posted

技术标签:

【中文标题】在 pylot 的 testcases.xml 中编写正则表达式的问题【英文标题】:Problems writing a regex in testcases.xml of pylot 【发布时间】:2012-12-17 12:13:41 【问题描述】:

我必须验证一个字符串列表,以响应一个肥皂请求。我正在使用 pylot 测试工具。我知道如果我在<verify>abcd</verify>element 中使用一个字符串,它就可以正常工作。虽然我必须使用正则表达式,但我似乎也面临同样的问题,因为我不擅长正则表达式。

我必须验证<TestName>Abcd Hijk</TestName> 是否出现在我对发送请求的响应中。

以下是我在 testcases.xml 中编写正则表达式的尝试

<verify>[.TestName.][\w][./TestName.]</verify>

这是在 testcases.xml 文件中编写正则表达式的正确方法吗?我想准确验证上面提到的标记名及其值。

当我运行该工具时,它没有给我任何错误。但是如果我将字符更改为&lt;verify&gt;[.TesttttName.][\w][./TestttttName.]&lt;/verify&gt; 并运行该工具,它仍然可以运行而不会出现错误。虽然这应该是一次失败的运行,因为响应中没有提到的标签!

有人可以告诉我我在这里的正则表达式做错了什么吗?

任何帮助将不胜感激。谢谢!

【问题讨论】:

正则表达式在语法上是正确的,但并不代表你的想法。 @nhahtdh:感谢您的回复。您能否让我知道我必须做什么才能表达我的想法? 你对 TestName 元素有什么期望?只是 \w 不会匹配空格。 \w 匹配英文字母 a-zA-Z、数字 0-9 和下划线 _ @@nhahtdh:像你说的在testname里面,我会修改,但我更关心标签。您在下面给出的答案,我将尝试在其上运行代码并查看。我尝试使用十六进制替换,但昨天没有用。我会试试你说的。我认为 python 以不同的方式解释它。 【参考方案1】:

使用的正则表达式应如下所示。

<verify>&amp;lt;TestName&amp;gt;[\w\s]+&amp;lt;/TestName&amp;gt;</verify>

原因是,Pylot 具有文本形式的响应内容,即[响应中的上述部分如下所示]

.......&lt;TestName&gt;ABCd Hijk&lt;/TestName&gt;.....

Pylot 所做的是,当它解析 Testcases.xml 中的元素时,它以 TEXT 格式获取元素的值。然后它在从请求中获得的响应中搜索“验证文本”。

因此,每当我们想使用正则表达式验证 Pylot 中的任何内容时,我们都需要将正则表达式置于上述格式中,以便它给出所需的结果。

注意:必须注意收到的响应格式。要查看从请求中获得的响应,请在工具上启用日志消息,或者如果您想在控制台上查看响应,请编辑工具 engine.py 模块并插入打印语句。

【讨论】:

响应的内容是如何被实体转义的,这很奇怪。无论如何,您应该接受自己的答案,因为它可以解决您的问题。【参考方案2】:

原始正则表达式(无 XML 转义)。我假设您想接受英文字母 a-zA-Z、数字 0-9、下划线 _ 和空格字符(空格、换行符、回车符和其他一些字符 - 请查看文档了解详细信息)。

<TestName>[\w\s]+</TestName>

您需要转义&lt;&gt; 以在&lt;verify&gt; 标签内指定:

&lt;TestName&gt;[\w\s]+&lt;/TestName&gt;

【讨论】:

我尝试了上述方法,但不幸的是 pylot 工具不理解 <和>转义字符。我之前尝试过 `和 b同样,它失败了。 该工具的工作方式与我不同。我在回答中解释了同样的内容。感谢您对正则表达式的输入。它确实帮助我编写了我的正则表达式。

以上是关于在 pylot 的 testcases.xml 中编写正则表达式的问题的主要内容,如果未能解决你的问题,请参考以下文章

pylot网站压力测试

为啥我的 Pylot 图表是空白的?

导入 Pylot 会导致 flask.py 中出现“无效语法”错误

数据挖掘与分析 matplotlib . pylot 库

pylot测试工具环境搭建

详细介绍windows下使用python pylot进行网站压力测试