如何解决具有大量控件的页面的 Specflow
我使用 Specflow 进行测试自动化,我需要测试该用户是否可以注册。
问题是注册的字段很多,30个左右。
我的脚本如下所示:
And user is adding <value1> in the TextBox1 field
And user is adding <value2> in the TextBox2 field
...
And user is adding <value3> in the TextBox3 field
Outline scenario
<value1> <value2> <value3>
这是 Specflow 中的一个好方法还是我应该将所有内容压缩成这样:
And the user registers by filling in all the fields
解决方法
避免使用用户界面术语来表述您的步骤。而是专注于注册用户的业务流程。对于大型表格,我发现垂直数据表在一个步骤中非常清晰和简洁。您没有提供太多关于用户注册过程的信息,所以我会补上一些内容,也许您可以推断出您的具体应用。
When the user registers with the following information:
| Field | Value |
| First Name | ... |
| Last Name | ... |
| Username | ... |
| Address | ... |
| City | ... |
| State | ... |
填写大表单的复杂性在步骤定义中得到处理,可能还有一个知道如何与注册页面交互的“页面模型”类。使用 Table.CreateInstance<T> 扩展方法将 table
参数映射到 C# 中的强类型对象。
[When(@"the user registers with the following information:")]
public void WhenTheUserRegistersWithTheFollowingInformation(Table table)
{
var data = table.CreateInstance<RegisterUserDataRow>();
var registrationPage = new RegistrationPage(driver); // pass Selenium driver object
registrationPage.RegisterNewUser(username: data.Username,firstName: data.FirstName,lastName: data.LastName,address: data.Address,city: data.City,state: data.State);
}
public class RegistrationPage
{
public void RegisterNewUser(string username,string firstName,string lastName,string address,string city,string state)
{
UsernameField.SendKeys(username);
FirstNameField.SendKeys(firstName);
...
RegisterButton.Click();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。