这只是关于使用cypress.io构建框架的一般说明。 在赛普拉斯中,我们可以在硒中编写像页面对象模型这样的测试框架吗? 这些模型使我们的生活易于维护测试。 例如,如果用新版本的Application-In cypress更改了在多个测试/文件中使用的特定元素的ID或类,则很难去多个测试文件/测试并更改ID,对吗? 我们是否可以遵循相同的页面对象模型概念,例如在每个页面中将所有元素都声明为变量,并在测试/函数中使用变量名? 我们还可以在不同的测试.js文件中重用这些变量吗? 如果是,请给我一个样品 谢谢
答案 0 :(得分:0)
在使用赛普拉斯创建自动化框架时,我只看到少数人使用POM概念。是否建议遵循POM模型,这取决于阅读团队的以下链接。我会说这可能取决于自动化工具/体系结构。根据赛普拉斯团队的说法,这不值得推荐,可能是有争议的话题,请阅读:https://www.cypress.io/blog/2019/01/03/stop-using-page-objects-and-start-using-app-actions/#
我们可以在Cypress.env.json file
或cypress.json
文件中声明变量名称,如下所示:
{
"weight": "85",
"height": "180",
"age": "35"
}
然后,如果您想在test-spec
中使用它们,请创建一个新变量,然后像下面的test-spec中一样接收它。
const t_weight = Cypress.env('weight');
const t_height = Cypress.env('height');
现在您可以在相应的页面textbox
输入中使用变量,如下所示:
cy.get('#someheighttextfieldID').type(t_weight);
cy.get('#someweighttextfieldID').type(t_height);
或直接接收;
cy.get('#someweighttextfieldID').type(Cypress.env('weight'));
示例: / *在“ test-spec.js”文件中声明变量* /
const t_weight = Cypress.env('weight');
const t_height = Cypress.env('height');
// Cypress测试-进行以下测试以测试某些操作并将变量接收到文本框中
describe('Cypress test to receive variable', function(){
it('Cypress test to receive variable', function(){
cy.visit('/')
cy.get('#someweighttextfieldID').type(t_weight);
cy.get('#someheighttextfieldID').type(t_height);
//even receive the variable straight away
cy.get('#someweighttextfieldID').type(Cypress.env('weight'));
})
});