使用VS2010进行Webtesting的验证规则

时间:2011-05-30 09:17:26

标签: visual-studio-2010 webtest web-testing

我正在创建一个简单的webtest(Recorded Web性能测试),如果我尝试使用不存在的用户名登录,则会确保显示正确的错误消息。

但是,有两种类型的错误消息可以处理错误的登录信息。一个用于所有不存在且因此不被允许的用户名,另一个用于以字母“Q”开头的用户名(由于某些原因不允许)。

现在我要做的是使用'查找文本'验证规则,如果找到一个'查找文本'参数,测试应该通过,在这种情况下我想要第二个'查找文本'规则是被忽略所以它不会使测试失败。

换句话说,如果找到“查找测试”规则之一,测试应该始终通过。

我怎样才能实现这一目标?是否有一些if,else声明可以用于此?

2 个答案:

答案 0 :(得分:2)

另一种方法是使用数据绑定。如果您有为Web测试定义的数据源,就像这样名为ForbiddenUsers的表:

Username            Message
--------            ------- 
Quasimodo           You are not allowed to use this system.
NonExistent         Who are you?

然后,如果您在测试的登录部分使用数据源中的{{ForbiddenUsers.Username}},则只需添加一个查找文本验证规则,并使用该属性 'Find Text'= {{ForbiddenUsers.Message}}

这将为所需类型的用户名映射正确的消息。

答案 1 :(得分:0)

是的,你走在正确的轨道上:VS 2010有条件。

  • 在测试中,右键单击并选择添加条件
  • 选择字符串比较规则,将使用正则表达式设置为 true ,将设置为 ^ Q。*?$ ,并将上下文参数名称设置为包含用户名值的上下文参数。
  • 这将匹配以Q开头的用户名。
  • 将登录请求添加到条件,并将相应的查找文本规则(找到Q-username错误消息)添加到请求中。

遗憾的是,没有 else 的概念,因此您必须复制条件节点,并在副本中将比较运算符更改为< strong>不等于,然后修改复制的查找文本规则以匹配常规的不存在的用户名错误消息。

结果测试应该类似于:

-If ( {{username}} equals "^Q.*?$" )
 -http://login request here
  -Validation Rules
   -Find Text                                  <--- match Q-username error message
-If ( {{username}} does not equals "^Q.*?$" )
 -http://login request here
  -Validation Rules
   -Find Text                            <--- match non-existing username error message