我们如何在其他工具(如 selenium)中使 cypress 脚本像 POM 一样易于维护
How we can make cypress scripts easily maintainable like POM in other tools like selenium
这只是关于使用 cypress.io 构建框架的一般说明。
在 cypress 中,我们可以在 selenium 中编写类似页面对象模型的测试框架吗?
这些模型使我们的生活易于维护测试。
例如,如果跨多个测试/文件使用的特定元素的 ID 或 class 已随新版本的 Application-In cypress 发生变化,则很难进行多重测试 files/tests 并更改 ID正确的?
我们可以遵循相同的页面对象模型概念,例如将每个页面中的所有元素声明为变量并使用 tests/functions 中的变量名称吗?
我们还可以在不同的测试 .js 文件中重用这些变量吗?
如果是 - 你能给个样品吗
谢谢
我看到只有少数人在使用 Cypress 创建自动化框架时使用 POM 概念。是否建议遵循 POM 模型,这取决于阅读团队的以下 link。我会说这可能取决于自动化工具/架构。根据赛普拉斯团队的说法,这是不值得推荐的,可能是一个有争议的话题,请阅读: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
中使用它们,请创建一个新变量并像下面的测试规范那样接收它。
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');
//赛普拉斯测试 - 假设下面的测试测试一些动作并将变量接收到文本框
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'));
})
});
这只是关于使用 cypress.io 构建框架的一般说明。 在 cypress 中,我们可以在 selenium 中编写类似页面对象模型的测试框架吗? 这些模型使我们的生活易于维护测试。 例如,如果跨多个测试/文件使用的特定元素的 ID 或 class 已随新版本的 Application-In cypress 发生变化,则很难进行多重测试 files/tests 并更改 ID正确的? 我们可以遵循相同的页面对象模型概念,例如将每个页面中的所有元素声明为变量并使用 tests/functions 中的变量名称吗? 我们还可以在不同的测试 .js 文件中重用这些变量吗? 如果是 - 你能给个样品吗 谢谢
我看到只有少数人在使用 Cypress 创建自动化框架时使用 POM 概念。是否建议遵循 POM 模型,这取决于阅读团队的以下 link。我会说这可能取决于自动化工具/架构。根据赛普拉斯团队的说法,这是不值得推荐的,可能是一个有争议的话题,请阅读: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
中使用它们,请创建一个新变量并像下面的测试规范那样接收它。
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');
//赛普拉斯测试 - 假设下面的测试测试一些动作并将变量接收到文本框
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'));
})
});