2016-07-25 49 views
0

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

响应文本:{“成功”:真正的“数据”:“富巴”}

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。如果有人熟悉这一点,任何帮助将不胜感激:)

+0

你确定它使用JavaScript定义正则表达式吗? (/ /)。尝试在最后删除斜杠和标志(ig)。 – Wazner

+0

嗯我不确定,我会尝试删除斜线,并让你知道它是否有效。我正在进行负载测试。感谢您的建议! –

回答

1

这真的很容易使用Visual Studio的工作。以任何可用作沙箱文件的.webtest文件。使用正确的设置添加查找文本验证规则,然后运行“生成代码”命令。验证的正确代码将在生成的.cs文件中看到。

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

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

最后,没有关于此搜索字符串需要正则表达式。非正则表达式验证规则就足够了。


的问题该生产线具有validationRule.FindText = @"/(/""success/"":true)/ig";这似乎会吸引正则表达式可以在其他语言中使用的方式。不应使用括号/字符和尾部ig。他们的功能是通过其他方式实现的。

+0

谢谢!对于输入:)我现在有验证工作。我感谢您的帮助! –