Visual Studio:将csv文件用于Web性能测试中的“查找文本”验证不起作用

时间:2018-08-07 08:51:27

标签: visual-studio web performance-testing

我正在使用csv文件发布数据并检查回响应,在查找文本中,我想使用相同的csv文件。

在字符串主体im中使用:{{DataSource1.Table#csv.objectId}}可以很好地发布请求。 我在验证规则中输入查找文本时传递的同样内容,它不起作用,并且此验证规则失败。

在验证规则中,我正在使用“查找文本”并传递{{DataSource1.Table#csv.objectId}}

“详细信息”标签为验证规则显示以下内容:

查找文本验证所需的文本'{{DataSource1.Table#csv.objectId}}'未出现在HTML响应中。 FindText = {{DataSource1.Table#csv.objectId}},IgnoreCase = True,UseRegularExpression = True,PassIfTextFound = True

                                                                                                                                                           

尝试使用自定义验证规则并尝试传递上下文参数。相同的问题。其验证规则如下:                                                                                                      

1 个答案:

答案 0 :(得分:0)

“。webtest”允许上下文参数(CP)的许多地方在属性上都有“绑定”功能。例如,查看请求的“标头”的Value属性,它具有一个下拉列表,提供对CP的访问。

“。webtest”的某些属性允许CP嵌入文本中。例如,请求的Url属性允许text{{CpOne}}moretext{{CpTwo}}etc之类的东西。

不幸的是,“。webtest”的某些属性仅允许文本且不能扩展嵌入式CP。我还没有找到明确的陈述,说明哪些地方允许绑定CP,哪些位置支持嵌入式CP,哪些都不允许。另外,我还没有在用户编写的插件,提取规则或验证规则中找到对CP的任何内置支持。我的方法是尝试在需要CP的任何地方使用它们,当它们不起作用时,编写自己的代码来完成所需的工作。

您可以按照this Microsoft page中所述编写自己的验证规则。该代码可以基于以下未测试的代码

public class FindCpValueInResponseBody : ValidateResponseUrl
{
    public string CpWithTextToFind { get; set; }

    public override void Validate(object sender, ValidationEventArgs e)
    {
        string TextToFind = e.WebTest.Context[CpWithTextToFind].ToString();

        e.WebTest.AddCommentToResult("Looking for '" + TextToFind +"' (from CP '" + CpWithTextToFind + "').");

        if (e.Response.BodyString.Contains(TextToFind))
        {
            e.IsValid = true;
            e.Message = "Text '" + TextToFind + "' found.";
        }
        else
        {
            e.IsValid = false;
            e.Message = "Text '" + TextToFind + "' not found.";
        }
    }
}

增强上述方法以添加内置FindText验证规则的其他属性应该很简单;属性,例如Pass if text foundIgnore case等。

以上验证规则采用上下文参数名称。因此,如果该值来自数据源,则该值应类似于DataSource1.Table#csv.objectId。请注意,没有大括号(即没有{}),也没有前导或尾随空格。