量角器:多次循环简单测试 - 无参数
Protractor: Looping a simple test many times - no parameters
我有一个简单的测试,我的开发同事想 运行 重复 - 他们遇到过页面加载然后拒绝正确呈现的问题。
测试代码如下:
describe('DBM Tags', function() {
it('clears prefill basket', function() {
var startTime;
browser.get('https://gxptag.guestline.net/qa/');
// browser.driver.manage().window().maximize();
browser.ignoreSynchronization = true,
browser.sleep(3000);
expect(browser.getTitle()).toEqual('DBM QA Tag Tester');
browser.sleep(500);
//timer start
browser.controlFlow().execute(function() {
startTime = new Date().getTime();
});
//Clicks on basket prefill to load Hotel1
element(by.xpath("/html/body/div[1]/div[1]/button[6]")).click();
browser.switchTo().frame(element(by.tagName('iframe')).getWebElement());
browser.sleep(500);
var EC = protractor.ExpectedConditions;
var e = element(by.xpath ('/html/body/div[1]/div[2]/div/div[2]/div/div[2]/div[2]/div/div[1]/div/span'));
browser.wait(EC.presenceOf(e),5000);
//timer stop
browser.controlFlow().execute(function() {
var endTime = new Date().getTime();
var elapsedTime = endTime - startTime;
console.log('Elapsed Time Basket Prefill modal = ' + elapsedTime + 'ms');
});
browser.switchTo().defaultContent();
//verifies there is a value
browser.switchTo().frame(element(by.tagName('iframe')).getWebElement());
var value1 = element(by.xpath('/html/body/div[1]/div[2]/div/div[2]/div/div[2]/div[2]/div/div[2]/div/div/div/div[2]/div/div[1]/span/span'));
expect(value1.getText()).toEqual('£440.00');
browser.sleep(1000);
//closes modal
browser.switchTo().defaultContent();
element(by.xpath('//*[@id="dbm-close-btn"]')).click();
browser.sleep(500);
//clicks on Hotel1
element(by.xpath('/html/body/div[1]/div[1]/button[3]')).click();
browser.sleep(3000);
//clears room
browser.switchTo().frame(element(by.tagName('iframe')).getWebElement());
browser.sleep(3000);
element(by.deepCss('.removeBooking > svg:nth-child(1)')).click();
browser.sleep(1000);
browser.switchTo().defaultContent();
element (by.xpath('//*[@id="dbm-close-btn"]')).click();
browser.sleep(1000);
});
});
我想做的是将此代码循环 x 次...用旧的 VB 说法
for x = 1 to 100,
//code here
next x
我明白我们需要考虑承诺,但任何其他建议将不胜感激。
谢谢
我没有时间测试它,所以可能会有错误,但作为一种方法使用它
像这样制定规范
let j = Number(process.env.RERUN) || 1;
for (let i = 0; i < j; i++) {
describe("Suite", () => {
it('1', async () => {
// your test case
});
});
}
并使用此命令启动量角器
RERUN=100 protractor protractor.conf.js
P.S.
也可以使用这种方法https://moduscreate.com/blog/protractor_parameters_adding_flexibility_automation_tests/
这样,您需要更改规范中的一行
let j = Number(browser.params.rerun) || 1;
然后开始你的量角器
protractor conf.js --parameters.rerun=100
所以总结一下!
将此添加到规范中:
let j = Number(browser.params.rerun) || 1;
for (let i = 0; i < j; i++) {
describe("Suite", () => {
it('1', async () => {
});
});
}
然后在 config.js 文件的 'exports' 部分添加:
params: {
rerun: 5
},
..然后用
开始测试
Protractor config.js
测试将 运行 5 次。
我有一个简单的测试,我的开发同事想 运行 重复 - 他们遇到过页面加载然后拒绝正确呈现的问题。
测试代码如下:
describe('DBM Tags', function() {
it('clears prefill basket', function() {
var startTime;
browser.get('https://gxptag.guestline.net/qa/');
// browser.driver.manage().window().maximize();
browser.ignoreSynchronization = true,
browser.sleep(3000);
expect(browser.getTitle()).toEqual('DBM QA Tag Tester');
browser.sleep(500);
//timer start
browser.controlFlow().execute(function() {
startTime = new Date().getTime();
});
//Clicks on basket prefill to load Hotel1
element(by.xpath("/html/body/div[1]/div[1]/button[6]")).click();
browser.switchTo().frame(element(by.tagName('iframe')).getWebElement());
browser.sleep(500);
var EC = protractor.ExpectedConditions;
var e = element(by.xpath ('/html/body/div[1]/div[2]/div/div[2]/div/div[2]/div[2]/div/div[1]/div/span'));
browser.wait(EC.presenceOf(e),5000);
//timer stop
browser.controlFlow().execute(function() {
var endTime = new Date().getTime();
var elapsedTime = endTime - startTime;
console.log('Elapsed Time Basket Prefill modal = ' + elapsedTime + 'ms');
});
browser.switchTo().defaultContent();
//verifies there is a value
browser.switchTo().frame(element(by.tagName('iframe')).getWebElement());
var value1 = element(by.xpath('/html/body/div[1]/div[2]/div/div[2]/div/div[2]/div[2]/div/div[2]/div/div/div/div[2]/div/div[1]/span/span'));
expect(value1.getText()).toEqual('£440.00');
browser.sleep(1000);
//closes modal
browser.switchTo().defaultContent();
element(by.xpath('//*[@id="dbm-close-btn"]')).click();
browser.sleep(500);
//clicks on Hotel1
element(by.xpath('/html/body/div[1]/div[1]/button[3]')).click();
browser.sleep(3000);
//clears room
browser.switchTo().frame(element(by.tagName('iframe')).getWebElement());
browser.sleep(3000);
element(by.deepCss('.removeBooking > svg:nth-child(1)')).click();
browser.sleep(1000);
browser.switchTo().defaultContent();
element (by.xpath('//*[@id="dbm-close-btn"]')).click();
browser.sleep(1000);
});
});
我想做的是将此代码循环 x 次...用旧的 VB 说法
for x = 1 to 100,
//code here
next x
我明白我们需要考虑承诺,但任何其他建议将不胜感激。
谢谢
我没有时间测试它,所以可能会有错误,但作为一种方法使用它
像这样制定规范
let j = Number(process.env.RERUN) || 1;
for (let i = 0; i < j; i++) {
describe("Suite", () => {
it('1', async () => {
// your test case
});
});
}
并使用此命令启动量角器
RERUN=100 protractor protractor.conf.js
P.S.
也可以使用这种方法https://moduscreate.com/blog/protractor_parameters_adding_flexibility_automation_tests/ 这样,您需要更改规范中的一行
let j = Number(browser.params.rerun) || 1;
然后开始你的量角器
protractor conf.js --parameters.rerun=100
所以总结一下!
将此添加到规范中:
let j = Number(browser.params.rerun) || 1;
for (let i = 0; i < j; i++) {
describe("Suite", () => {
it('1', async () => {
});
});
}
然后在 config.js 文件的 'exports' 部分添加:
params: {
rerun: 5
},
..然后用
开始测试Protractor config.js
测试将 运行 5 次。