0

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

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

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

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

我怎样才能做到这一点?是否有一些 if,else 语句可以用于此?

4

2 回答 2

2

另一种方法是使用数据绑定。如果您为 Web 测试定义了一个数据源,例如一个名为 ForbiddenUsers 的表,如下所示:

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

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

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

于 2011-11-23T09:47:32.650 回答
0

Yes you are on the right track: VS 2010 has conditionals.

  • In your test, right-click and choose Add Conditional.
  • Choose the String Comparison rule, set Use Regular Expression to true, set Value to ^Q.*?$, and set Context Parameter Name to the context parameter containing the username value.
  • This will match usernames beginning with Q.
  • Add the login request to the conditional, and add the appropriate Find Text rule (that finds the Q-username error message) to the request.

There is no notion of else, unfortunately, so you'll have to make a copy the Conditional node, and in the copy, change the Comparison Operator to Not Equals, and then modify the copied Find Text rule to match the regular non-existing username error message.

The resulting test should look something like:

-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
于 2011-06-01T09:14:13.953 回答