标签: e2e-testing

如何使用茉莉花自定义报告器发布失败的规格列表以发布到 slack?

我正在尝试使用自定义 jasmine 报告器并获取 specDone 函数中所有失败规范的列表:

specDone: function(result) {
    if(result.status == 'failed') {          
        failedExpectations.push(result.fullName);
        console.log(failedExpectations);         
    }       
}
Run Code Online (Sandbox Code Playgroud)

在哪里failedExpectations将存储失败规范的完整列表,我需要afterLaunch在量角器配置文件的函数中访问它。但是由于配置文件在每次运行新规范时都会加载,它基本上会被覆盖,并且范围使得我无法在afterLaunch函数中访问它,这就是我调用 slack api 的地方。有没有办法实现这一目标?

这是我基于的内容:http : //jasmine.github.io/2.1/custom_reporter.html

javascript jasmine protractor slack-api e2e-testing

6
推荐指数
1
解决办法
569
查看次数

赛普拉斯访问和等待超时被忽略

我创建了一个设置路由的测试,尝试访问一个向路由发出 API 请求的页面,然后等待路由响应:

cy
    .server()
    .route('GET', '/api/testing')
    .as('testing');
cy.visit('/index.html', { timeout: 60000 });
cy.wait('@testing', { timeout: 60000 });
Run Code Online (Sandbox Code Playgroud)

这只会等待responseTimeout30 秒的赛普拉斯全局默认值,然后 API 请求失败。

以下是赛普拉斯在控制台中记录的错误消息:

赛普拉斯尝试向此 url 发出 http 请求时出错: https://localhost:4200/api/testing

错误是:

ESOCKET超时

堆栈跟踪是:

错误:ClientRequest
处的ESOCKETTIMEDOUT 。(...\node_modules\cypress\dist\Cypress\resources\app\packages\server\node_modules\request\request.js:778:19)
在 Object.onceWrapper (events.js:314:30)
在 emitNone (events.js :105:13)
在 ClientRequest.emit (events.js:207:7)
在 TLSSocket.emitTimeout (_http_client.js:722:34)
在 Object.onceWrapper (events.js:314:30)
在 emitNone (events.js :105:13)
at TLSSocket.emit (events.js:207:7)
at TLSSocket.Socket._onTimeout (net.js:402:8) at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js) :304:5)
在 Timer.listOnTimeout (timers.js:264:5)

将 a 添加responseTimeout到 Cypress 的全局配置会增加超时,但为什么不是 …

timeout e2e-testing cypress

6
推荐指数
1
解决办法
7973
查看次数

如何在 testcafe 夹具/测试中使用动态 url

拿这个夹具我想checkoutId根据before夹具钩子中API 调用的结果来设置,这样我就可以用它来设置我的测试页面

let checkoutId;
fixture`Check out as guest user`
  .page`localhost:3001/checkout/start/${checkoutId}`
  .before(async () => {
      await checkout.getCheckoutId(sampleData.cart)
      .then(id => (checkoutId = id));
});

// and here the rest of my tests based on the page
Run Code Online (Sandbox Code Playgroud)

我尝试了fixture hooks,共享变量,但我无法让它工作,请求页面时 checkoutId 未定义。

这种情况甚至可能吗?

testing automated-tests browser-automation e2e-testing testcafe

6
推荐指数
1
解决办法
1345
查看次数

如何模拟 Cypress.io 中丢失的窗口焦点

我正在使用 Cypress.io 为网站编写 E2E 测试。我想测试的功能之一是该站点正确检测到焦点丢失并显示(有角度的材料)对话框。我遇到的问题是我找不到一种可靠的方法来触发在测试环境中发生的窗口焦点丢失。我已经查看了 Cypress.io 中各种焦点和模糊事件的文档,但结果是空的。有谁知道是否可以从 Cypress.io 以编程方式触发窗口焦点丢失(模糊),如果可以,是否有我可以遵循的文档或示例?

javascript automated-tests e2e-testing angular cypress

6
推荐指数
1
解决办法
2381
查看次数

Puppeteer page.goTo() 永远不会完成

为什么 puppeteer page.goto() 挂起?

这是发生这种情况的另一个例子^

我一直不明白为什么,但即使是最简单的木偶脚本也无法通过 goTo()

我有以下代码:

    const browser = await puppeteer.launch({ executablePath: '/usr/bin/google-chrome-unstable', args: ["--proxy-server='direct://'", '--proxy-bypass-list=*', '--no-sandbox', '--disable-setuid-sandbox'] });
    const page = await browser.newPage();
    await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36');
    await page.setDefaultNavigationTimeout(0);

    log('before nav');
    await page.goto('http://www.google.com');

    log('waiting nav');
    await page.waitForNavigation({
        waitUntil: 'networkidle0'
    });

    log('complete');

    await browser.close();
Run Code Online (Sandbox Code Playgroud)

输出是:

$:# node lib/tests/nav.test.js
    before nav
    waiting nav

Run Code Online (Sandbox Code Playgroud)

它永远不会记录“完整”。我尝试过不使用代理旁路和代理服务器、打开和关闭无沙箱。我努力了networkidle2。它没有完成。我还尝试了各种不同的网站。我使用 Puppeteer 4.x 并使用节点 12.x 和 npm 6.x。

我研究了人们建议的 Promise 方法:

await Promise.All([ page.goto('http://www.google.com'), page.waitForNavigation() …
Run Code Online (Sandbox Code Playgroud)

javascript automation node.js e2e-testing puppeteer

6
推荐指数
1
解决办法
1万
查看次数

chromeWebSecurity 在赛普拉斯中不起作用

我尝试通过谷歌测试登录。并收到错误“赛普拉斯检测到页面加载时发生跨源错误”。这是m测试代码。在获取input[name="identifier"]元素之前我看到这个错误。

我的测试代码:

cy.visit(`https://app.develop.weeek.net/sign-in`);

cy.get('.socials__social')
  .eq(0)
  .click();

cy.get('input[name="identifier"]')
  .type(Cypress.env.TEST_GOOGE_EMAIL)
  .should('have.value', Cypress.env.TEST_GOOGE_EMAIL);
Run Code Online (Sandbox Code Playgroud)

我已经尝试了所有方法来关闭 Chrome 的 CORS 请求检查。但没有人在工作。我通过命令打开cypress cypress open --config chromeWebSecurity=false。

我的cypress.json:

{
  "chromeWebSecurity": false,
  "viewportWidth": 1280,
  "viewportHeight": 768
}
Run Code Online (Sandbox Code Playgroud)

为什么chromeWebSecurity不工作?如何关闭CORS检查?

javascript e2e-testing cypress

6
推荐指数
0
解决办法
1593
查看次数

仅针对最新浏览器版本进行端到端测试有什么好处

当使用 Playwright、Puppeteer 和 Cypress 等工具执行端到端测试时,我相信所有这些工具(除了后者,如果我错了请原谅)只允许您使用每个浏览器的最新版本,即与每个版本捆绑在一起。

在这种情况下,我想知道运行端到端验收测试的真正好处是什么?这些测试只会针对更有限的场景验证功能,而不是确保您的应用程序仍然可以在 Chrome 70 上运行?

任何关于为什么只考虑最新的浏览器版本而忘记其余部分的见解都是一个好主意,通过使用 Playwright 而不是允许针对特定浏览器二进制文件进行定向测试的工具,例如,并使您的 E2E 测试结果如下:

PASS. Shopping-Cart (Modern)
FAIL. Shopping-Cart (chrome 70) 
// Refactor
Run Code Online (Sandbox Code Playgroud)

代替

PASS. Shopping-Cart
// Yay! Release
Run Code Online (Sandbox Code Playgroud)

e2e-testing puppeteer cypress playwright

6
推荐指数
1
解决办法
545
查看次数

cypress Cypress.config.baseUrl 设置正确,但从 cy.visit() 出现错误

这是我的测试:

describe('settings page test', () =>{
    it('tests navigation to settings page from login', () =>{
        console.log(Cypress.config().baseUrl)
        cy.visit(Cypress.config().baseurl)
Run Code Online (Sandbox Code Playgroud)

果然console.log(Cypress.config().baseUrl)包含了我的 baseUrl 设置的值。

{
  "baseUrl": "https://superniftyurltho.com",
  "env": {

  }
}
Run Code Online (Sandbox Code Playgroud)

这是错误

    cy.visit() must be called with a url 
or an options object containing a url as its 1st argumentLearn more
Run Code Online (Sandbox Code Playgroud)

有人知道会发生什么吗?

base-url e2e-testing cypress e2e

6
推荐指数
1
解决办法
1万
查看次数

如何将参数传递给flutterintegration_test?

我flutter_driver之前用于集成测试,并且能够通过主机中的环境变量将参数插入到测试中,因为测试是从主机运行的。

对于另一个项目,我现在使用integration_test包。

测试不再在主机上运行,​​而是在目标上运行,因此当尝试通过环境变量传递参数时,测试不会获取它们。

我看到https://github.com/flutter/flutter/issues/76852我认为这可能有所帮助,但现在还有其他选择吗?

e2e-testing flutter flutter-integration-test

6
推荐指数
1
解决办法
1993
查看次数

剧作家赛跑者与黄瓜

最近我发现了剧作家,看起来真的很好。我发现的问题通常是在黄瓜或小黄瓜语法的实现中。例如,在 cypress 中,这里的任务非常简单,看起来我需要使用其他测试运行程序然后使用剧作家。这是真的还是我只是缺少剧作家中黄瓜的一些库/配置?感谢您的任何建议。

cucumber gherkin e2e-testing angular playwright

6
推荐指数
1
解决办法
3040
查看次数