Cypress如何设置全局URL?

249 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第6天,点击查看活动详情

大家好,我是阿萨。 昨天我们学习了skip和only 。了解了如何排除某些测试用例,或者只执行某些测试用例。

在写自动化用例过程中,自动化用例需要在不同环境下都可以运行。如果环境改变,只需要改变一下URL 就可以了。
今天我们就学习下设置全局URL。先上代码。 这样写的好处,也方便把可变变化提取成参数统一管理。 避免脚本,数据和配置信息 混合在一起。 我们搭建自动化测试框架的时候,也要注意把数据,配置信息和逻辑放到不同的地方去存储。 这样做到逻辑和配置分离。

在cypress.config.js 里添加如何代码:

module.exports = {e2e: {
setupNodeEvents(on, config) {
console.log(config) 

// see everything in here!
// modify config values      

config.defaultCommandTimeout = 10000      

config.baseUrl = 'www.ABC-XXXXX.com'//可以替换成自己的网站

// modify env var value      
config.env.ENVIRONMENT = 'QA'
// IMPORTANT return the updated config object
return config    
},  
},
};

然后在testlogin.cy.js文件里添加如下测试用例。在写测试用例的啥时候就不需要把域名等其他信息放到脚本里了。所以写脚本的时候,之类从域名之后的path 开始就可以了。

 it('Login success', function () {            
     cy.visit('login')
     cy.get('input[name=email]').type(username)
     cy.get('input[name=password]').type(password)     
     cy.get('input[type=checkbox]').check() 
     cy.get('.login').click()
     
     cy.url().should('include''/ABC')            
     cy.get('span[name=username]').should('contain', username)
})

大家可以看到 cy.visit('login'), 不需要添加域名。
而且需要切换环境的时候,修改下conifg里的信息就可以了。而且设置好baseURL后,不仅可以在运行时节省Cypress匹配被测应用程序URL的时间,还可以在编写待访问的URL 时,忽略baseURL, 直接写后面的路径。 你学会了吗? 如果你喜欢阿萨的文章,欢迎围观和点赞。