gpt4 book ai didi

javascript - 如何在Protractor中控制测试用例在不同浏览器上运行

转载 作者:行者123 更新时间:2023-11-28 04:35:01 24 4
gpt4 key购买 nike

test problem

如测试问题图片所示,有两种浏览器运行不同的测试用例。我想在两个正在运行的浏览器(浏览器1和浏览器2)上运行规范7,并进行诸如聊天应用程序之类的交互。在两个浏览器上运行规范 1 到 6 后,规范 7 应该在两个浏览器上运行指定的测试。例如:

spec7.js 文件:

  • 用户1在浏览器2中从浏览器1向用户2发送hello消息。
  • 用户2在浏览器2中接收hello消息并将msg hi从浏览器2发送到浏览器 1 中的用户 1。

这两个操作应该在同一个 spec7.js 文件中完成,并且该文件应该在已经为其他规范文件运行的两个浏览器中运行。我正在寻求帮助。

最佳答案

您可以使用两个文件来解决您的问题。

我尝试用一​​个示例聊天应用程序来解释它

spec7_browser1.js:

...
//Sends own message
element(by.id('messageInput')).sendKeys('hello'); // Enters hello into the message input field

element(by.id('submitMessage')).click(); // Clicks on the submit button to send the message

expect(element(by.id('chat')).getText()).toContain('hello');

// Waits for the message of browser 2
var EC = protractor.ExpectedConditions;
browser.wait(EC.textToBePresentInElement(element(by.id('chat')), 'hi'), 60000); // Waits until the given text is displayed in the element and fails if the text is not displayed in 60 seconds

expect(element(by.id('chat')).getText()).toContain('hi');
...

spec7_browser2.js:

...
// Waits for the message of browser 1
var EC = protractor.ExpectedConditions;
browser.wait(EC.textToBePresentInElement(element(by.id('chat')), 'hello'), 60000); // Waits until the given text is displayed in the element and fails if the text is not displayed in 60 seconds

expect(element(by.id('chat')).getText()).toContain('hello');

// Sends own message
element(by.id('messageInput')).sendKeys('hi'); // Enters hello into the message input field

element(by.id('submitMessage')).click();

expect(element(by.id('chat')).getText()).toContain('hi');
...

等等...

也许您需要在 protractor-config.js 中增加 jasmine 的默认超时:

jasmineNodeOpts: {
...
defaultTimeoutInterval: 90000 // 90s timeout
}

我希望这有帮助,否则请告诉我,以便我改进我的答案;-)

关于javascript - 如何在Protractor中控制测试用例在不同浏览器上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44286717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com