Visual Studio 2015:WebTest使用Regex验证响应

本文关键字:Regex 验证 响应 使用 WebTest Studio 2015 Visual | 更新日期: 2023-09-27 17:58:30

我尝试使用regex来验证网络测试中的响应文本。使用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是regex,它失败了,因为它在响应中找不到/(/"success/":true)/ig。如果有人熟悉这一点,我们将非常感谢您的帮助:)

Visual Studio 2015:WebTest使用Regex验证响应

使用Visual Studio很容易实现这一点。取任何可以用作沙箱文件的.webtest文件。添加具有正确设置的查找文本验证规则,然后运行"生成代码"命令。验证的正确代码将出现在生成的.cs文件中。

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

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

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


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