如何在一个测试中检查多个URL?

对方正在输入...
对方正在输入...
对方正在输入...
订阅者
258
文章
0
评论
测试交流2204字数 188阅读0分37秒阅读模式
摘要我有一个URL列表,需要检查每个URL上的相同元素。 但有两个条件: 所有工作都必须在1 it()中完成 测试一定不能失败后,第一个错误的网址,但必须检查所有。。。

我有一个URL列表,需要检查每个URL上的相同元素。
但有两个条件:

  1. 所有工作都必须在1 it()中完成
  2. 测试不能在第一个错误的url后失败,但必须检查所有url,并仅在列表完成后显示结果

我尝试通过循环并尝试catch来完成测试(因为默认情况下没有软断言),但测试总是通过的,即使来自元素的文本是错误的(因为我不理解这是因为异步)。文章源自玩技e族-https://www.playezu.com/192609.html

    let errorUrls = []
    for (let url in data.PRODUCTS_PAGES) {
        cy.visit(url)
        cy.get('div.configurator-controls span').invoke('text')
            .then(text => {
                try {
                    expect(text).to.equal(data.PRODUCTS_PAGES
) } catch (e) { errorUrls.push(e.message) } }) } expect(errorUrls).to.be.empty

我该怎么做?文章源自玩技e族-https://www.playezu.com/192609.html

软件测试app功能文章源自玩技e族-https://www.playezu.com/192609.html 文章源自玩技e族-https://www.playezu.com/192609.html

 
评论  2  访客  2
    • TesterDick
      TesterDick 9

      如果你不想失败,不要使用 expect() 消息灵通的
      注意,所有URL必须是相同的来源。
      let errorUrls = []

      for (let url in data.PRODUCTS_PAGES) {
      cy.visit(data.PRODUCTS_PAGES[url])

      cy.get(‘div.configurator-controls span’).invoke(‘text’)
      .then(text => {
      if (text !== data.PRODUCTS_PAGES[url]) {
      errorUrls.push(e.message)
      }
      })
      }

      cy.then(() => {
      cy.log(errorUrls)
      expect(errorUrls).to.have.length(0)
      })

      • Alapan Das
        Alapan Das 9

        你可以这样做:
        let errorUrls = []

        for (let url in data.PRODUCTS_PAGES) {
        cy.visit(data.PRODUCTS_PAGES[url])
        cy.get(‘div.configurator-controls span’).then(($ele) => {
        if ($ele.text() == data.PRODUCTS_PAGES[url]) {
        expect($ele.text()).to.equal(data.PRODUCTS_PAGES[url])
        } else {
        errorUrls.push(data.PRODUCTS_PAGES[url])
        }
        })
        }
        cy.then(() => {
        expect(errorUrls).to.be.empty
        })

      匿名

      发表评论

      匿名网友
      确定

      拖动滑块以完成验证