我们如何使赛普拉斯脚本易于维护,例如在硒等其他工具中使用POM

时间:2019-01-10 06:05:14

标签: frameworks cypress

这只是关于使用cypress.io构建框架的一般说明。 在赛普拉斯中,我们可以在硒中编写像页面对象模型这样的测试框架吗? 这些模型使我们的生活易于维护测试。 例如,如果用新版本的Application-In cypress更改了在多个测试/文件中使用的特定元素的ID或类,则很难去多个测试文件/测试并更改ID,对吗? 我们是否可以遵循相同的页面对象模型概念,例如在每个页面中将所有元素都声明为变量,并在测试/函数中使用变量名? 我们还可以在不同的测试.js文件中重用这些变量吗? 如果是,请给我一个样品 谢谢

1 个答案:

答案 0 :(得分:0)

在使用赛普拉斯创建自动化框架时,我只看到少数人使用POM概念。是否建议遵循POM模型,这取决于阅读团队的以下链接。我会说这可能取决于自动化工具/体系结构。根据赛普拉斯团队的说法,这不值得推荐,可能是有争议的话题,请阅读:https://www.cypress.io/blog/2019/01/03/stop-using-page-objects-and-start-using-app-actions/#

我们可以在Cypress.env.json filecypress.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'));

  })
});