【问题标题】:Visual Studio 2015: WebTest Validate Response with RegexVisual Studio 2015:WebTest 使用正则表达式验证响应
【发布时间】:2016-07-25 17:43:01
【问题描述】:

我正在尝试使用正则表达式来验证 webtest 中的响应文本。使用 ValidationRuleFindText 类,您可以选择使用正则表达式来验证来自 Web 请求的响应文本。示例:

响应文本:{"success":true, "data":"foo bar"}

ValidationRuleFindText validationRule = new ValidationRuleFindText();
validationRule.FindText = @"/(/""success/"":true)/ig";
validationRule.IgnoreCase = true;
validationRule.UseRegularExpression = true;
validationRule.PassIfTextFound = true;
foobarRequest.ValidateResponse += new EventHandler<ValidationEventArgs>    (validationRule3.Validate);

由于某种原因,它没有认识到validationRule.FindText 是正则表达式并且它失败了,因为它实际上无法在响应中找到/(/"success/":true)/ig。如果有人熟悉这个,任何帮助将不胜感激:)

【问题讨论】:

  • 你确定它使用JavaScript定义正则表达式的方式吗? (//)。尝试删除最后的斜杠和标志(ig)。
  • 嗯我不确定,我会尝试删除斜线并让您知道它是否有效。我目前正在运行负载测试。谢谢你的建议!!!

标签: c# visual-studio webtest


【解决方案1】:

使用 Visual Studio 很容易解决这个问题。取任何可用作沙盒文件的.webtest 文件。添加具有正确设置的查找文本验证规则,然后运行“生成代码”命令。验证的正确代码将在生成的.cs 文件中看到。

对于问题中的示例字符串,搜索字符串{"success":true, "data":"foo bar"} 生成下面的行。其他验证规则行与问题中的相同。

validationRule1.FindText = "{\"success\":true, \"data\":\"foo bar\"}";

最后,这个搜索字符串不需要正则表达式。一个非正则表达式验证规则就足够了。


问题中的行有validationRule.FindText = @"/(/""success/"":true)/ig";,这似乎对其他一些语言中使用正则表达式的方式很有吸引力。不应使用封闭的/ 字符和结尾的ig。它们的功能是通过其他方式实现的。

【讨论】:

  • 谢谢!!对于输入 :) 我现在可以进行验证了。感谢您的帮助!
猜你喜欢
  • 2011-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多