首页 > 解决方案 > 在赛普拉斯测试自动化中更改 baseUrl(设置为 null)

问题描述

我需要在 cypress.json 文件中设置 baseUrl 以避免在 cy.visit() 中不必要的页面重新加载并在某些测试期间覆盖 baseUrl。

柏树.json

{
   "baseUrl": "https://dev.testhub.io/"
} 

测试步骤

  1. 通过单击 UI 中的示例下载按钮下载示例
  2. 使用系统命令(exec)解压缩下载的示例
  3. 单击 UI 中的复制按钮以复制配置值
  4. 将复制的配置值粘贴到解压缩示例中的文件中

测试规范.ts

it("sample test",
                 function () {
                    Cypress.config('baseUrl', null);
                    cy.log("logvalue" +Cypress.config().baseUrl);
                    appQuickStart.downloadSample("java");
                    appQuickStart.unzipSample(sampleDownloadDirectory, sampleJavaAppDownloadLocation);
                    appQuickStart.clickCopyConfigsButtonFromUI();  
                    appQuickStart.pasteCopiedConfigToClipboard(sampleJavaAppExtractLocation);
                });

pasteCopiedConfigToClipboard 方法用于将配置复制到剪贴板,然后将其写入文件 /src/config.json

static pasteCopiedConfigToClipboard(sampleAppLocation){
        cy.wait(2000);
            cy.task("getClipboard").then((value) => {
                cy.writeFile(sampleAppLocation + "/src/config.json", value);
                cy.log("Before copy to config file" + value);
                cy.wait(10000);
                cy.log("After write to config file" + value);
                cy.readFile(sampleAppLocation + "/src/config.json").then((text) =>{
                });
            });
    }

clickCopyConfigsButtonFromUI()

static clickCopyConfigsButtonFromUI() {

        cy.get(".application-sample-config-editor .copy").click({ force: true });
        cy.wait(7000);
    }
  1. 我在 cypress.json 文件中如上所述设置了 baseUrl。当它从那里设置的测试从 appQuickStart.pasteCopiedConfigToClipboard() 失败时,它将调用任务以通过任务将一些内容复制到剪贴板。我用于复制到剪贴板的插件是https://www.npmjs.com/package/clipboardy

  2. 然后我尝试在执行此方法的 it() 中将 baseUrl 设置回 null。测试仍然在同一步骤失败。在我添加的日志中,它显示 baseUrl 设置为 null。

  3. 如果我从 cypress.json 中删除 baseUrl 配置并执行测试,那么测试将执行而不会出现任何故障。

将 cypress.json 中的 baseurl 设置为剪贴板等插件以使其失败时是否有任何限制。

感谢您对此的投入

标签: npmautomationcypressclipboardui-automation

解决方案


推荐阅读