我想使用Protractor测试一个简单的用户注册表单。
这是我的测试:
describe('User Registration Page Tests', function() {
beforeEach(function() {
browser.get('/#/register');
});
it('user registration success', function(){
element(by.model('user.organizationName')).sendKeys('someOrg');
element(by.model('user.firstName')).sendKeys('some');
element(by.model('user.lastName')).sendKeys('user');
element(by.model('user.email')).sendKeys('some@user.com');
element(by.model('user.password')).sendKeys('123456');
element(by.model('confirmPassword')).sendKeys('123456');
element(by.id('submitBtn')).click();
browser.getCurrentUrl().then(function(url) {
expect(url).toEqual('http://localhost:9001/#/success');
});
});
});
第一次,测试将通过。但是对于下一次它将失败,因为该用户已经存在。
有没有办法自动生成新字段值来解决此问题?
无法在谷歌找到任何关于它的内容......
答案 0 :(得分:4)
将当前时间戳添加到firstName和lastName的值为
var randVal = Date.now()
............................
element(by.model('user.firstName')).sendKeys('some-' + randVal);
element(by.model('user.lastName')).sendKeys('user-' + randVal);
element(by.model('user.email')).sendKeys('some' + randVal + '@user.com');
答案 1 :(得分:1)
可以使用此功能自动生成用户名
var.autoGenerateUserName = function() {
var autoGenerateUserName = "Auto-UserName-";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
for (var i = 0; i < 3; i++)
autoGenerateUserName += possible.charAt(Math.floor(Math.random() * possible.length));
return autoGenerateUserName;
};
在此表单注册中,您可以使用类似
的内容element(by.model('user.organizationName')).sendKeys(autoGenerateUserName());
或强>
var userName = autoGenerateUserName();
element(by.model('user.organizationName')).sendKeys(userName);