在 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 文件中编写正则表达式的正确方法吗?我想准确验证上面提到的标记名及其值。
当我运行该工具时,它没有给我任何错误。但是如果我将字符更改为<verify>[.TesttttName.][\w][./TestttttName.]</verify>
并运行该工具,它仍然可以运行而不会出现错误。虽然这应该是一次失败的运行,因为响应中没有提到的标签!
有人可以告诉我我在这里的正则表达式做错了什么吗?
任何帮助将不胜感激。谢谢!
【问题讨论】:
正则表达式在语法上是正确的,但并不代表你的想法。 @nhahtdh:感谢您的回复。您能否让我知道我必须做什么才能表达我的想法? 你对 TestName 元素有什么期望?只是\w
不会匹配空格。 \w
匹配英文字母 a-zA-Z
、数字 0-9
和下划线 _
。
@@nhahtdh:像你说的在testname里面,我会修改,但我更关心使用的正则表达式应如下所示。
<verify>&lt;TestName&gt;[\w\s]+&lt;/TestName&gt;</verify>
原因是,Pylot 具有文本形式的响应内容,即[响应中的上述部分如下所示]
.......<TestName>ABCd Hijk</TestName>.....
Pylot 所做的是,当它解析 Testcases.xml 中的元素时,它以 TEXT 格式获取元素的值。然后它在从请求中获得的响应中搜索“验证文本”。
因此,每当我们想使用正则表达式验证 Pylot 中的任何内容时,我们都需要将正则表达式置于上述格式中,以便它给出所需的结果。
注意:必须注意收到的响应格式。要查看从请求中获得的响应,请在工具上启用日志消息,或者如果您想在控制台上查看响应,请编辑工具 engine.py 模块并插入打印语句。
【讨论】:
响应的内容是如何被实体转义的,这很奇怪。无论如何,您应该接受自己的答案,因为它可以解决您的问题。【参考方案2】:原始正则表达式(无 XML 转义)。我假设您想接受英文字母 a-zA-Z
、数字 0-9
、下划线 _
和空格字符(空格、换行符、回车符和其他一些字符 - 请查看文档了解详细信息)。
<TestName>[\w\s]+</TestName>
您需要转义<
和>
以在<verify>
标签内指定:
<TestName>[\w\s]+</TestName>
【讨论】:
我尝试了上述方法,但不幸的是 pylot 工具不理解 <和>转义字符。我之前尝试过 `和 b同样,它失败了。 该工具的工作方式与我不同。我在回答中解释了同样的内容。感谢您对正则表达式的输入。它确实帮助我编写了我的正则表达式。以上是关于在 pylot 的 testcases.xml 中编写正则表达式的问题的主要内容,如果未能解决你的问题,请参考以下文章