大数跨境

Cypress的PO设计模式(内附公开课视频)

Cypress的PO设计模式(内附公开课视频) 慧测
2021-03-26
2
导读:Cypress之PageObject设计模式代码实践

    公开课视频下载地址见文末!

    关于Cypress的介绍请自行搜索,不懂的加微信:13401182883


    如果你的朋友圈有我,在遇到技术难题的时候会多么Happy!


    PageObject(简称PO)设计模式在UI自动化测试中被广泛使用,这里给大家分享一下Cypress中关于PO的具体实现。

    基本思路是:针对一个被测页面,设计一个类(class),然后在该类中封装页面上的对象和其常用的操作及业务流程。

    

    以下图的登录页面为例:

    忽略验证码,页面上还有四个元素:用户名,密码,登录和登录失败时的提示信息,共4个元素。

    为了更好地维护元素的定位属性,将其分离到单独的json文件中,项目结构如图所示:

具体源码如下:

locator.json(元素定位属性)

{  "loginpage":{    "username": "#account",    "password": "#password",    "submit": "input[name=\"submit\"]",    "prompt": ".error>span"  }}

loginpage.js(页面对象类)

import locator from './locator.json'export default class LoginPage {    /**     * 构造函数     */    constructor() {        this.url = 'http://121.36.91.190/adminprov.php/Public/login'    }    // 封装页面对象:用户名,密码,登录按钮,提示信息    get username(){        return cy.get(locator.loginpage.username)    }    get password(){        return cy.get(locator.loginpage.password)    }    get submit(){        return cy.get(locator.loginpage.submit)    }    get prompt(){        return cy.get(locator.loginpage.prompt)    }
/** * 打开指定页面 */ visit(){ cy.visit(this.url) } // 封装常见业务流 /** * 登录业务 * @param name 用户名 * @param pwd 密码 */ login(name,pwd){ if(name!==""){ this.username.type(name) } if(pwd!==""){ this.password.type(pwd) } this.submit.click() }}

testLogin.js(测试用例代码)

import LoginPage from "./page/loginpage"
context('登录', ()=>{ /** * 每次用例执行之前都需要先执行该方法 */ beforeEach(()=>{ let login = new LoginPage() login.visit() //将页面对象保存到全局环境中,方便测试用例直接引用 cy.wrap(login).as('loginInstance') }) /** * 正向登录测试用例 */ it('输入正确的用户名和密码,可以登录成功',function (){ this.loginInstance.login('admin','123456') cy.url().should('contain','/Index/index') })
/** * 反向登录测试用例 */ it('输入错误的用户名和密码,提示:账户或密码错误',function (){ this.loginInstance.login('huice','123456') this.loginInstance.prompt.should('contain','账户或密码错误')    })})

Cypress系列免费公开课扫码


自动化测试全栈训练营

必修课

至少32次课,成为大牛就差这一步啦

公开课视频在线观看地址:

https://ke.qq.com/course/3382521?taid=11236815565724921&tuin=3e1d63a


公开课视频下载地址:

链接:https://pan.baidu.com/s/1InKO3b4-nlIECNMuNBcw7Q

提取码:hc66



扫码关注一下呗

【声明】内容源于网络
0
0
慧测
专注人工智能前沿技术落地企业实战应用
内容 404
粉丝 0
慧测 专注人工智能前沿技术落地企业实战应用
总阅读104
粉丝0
内容404