栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【无标题】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【无标题】

自动化测试从零到一 第二章 什么是POM设计模式 一、POM是什么?为什么要有POM 页面对象模式

PO核心理念:将操作的测试用例以页面为单位来进行类的划分。目的也是在维护管理过程中,将各个页面的操作分类进行管理。
使用面向对象的设计模式,页面对象模型将测试代码和被测试的页面的页面元素及其操作方法进行分离,以此降低页面元素变化对测试代码的影响。
每一个被测试页面都会被单独定义为一个类,类中会定位所有需要进行测试操作的页面元素对象,并且定义操作页面元素对象的方法。

PO 模式使用

创建PageObject类封装一个页面元素和操作方法。
使用@FindBy注解定义页面元素
使用pageFactory类的intelements方法初始化页面元素。
封装操作元素的方法。
PO模式更多体现的是将某个页面中操作的对象和动作封装起来的思想,并不一定非要使用seleium提供的方式实现,通过关键字实现也能达到同样的效果,出发点都是减少代码的维护工作量。

选择合理的自动化框架
采用java语言+采用testNG测试框架+allure测试报告+logger日志ci/cd持续集成
一个成熟的设计模式,肯定是有一些原则性的东西,在编写代码的时候根据原则直接写出代码

二、POM编写原则

– 用公共方法代表页面提供的功能–封装一个basepage
– 不要暴露页面元素到外部
– 一般不要在方法内断言
– 方法应该返回其他PO对象(可以是其他页面,或者是断言数据等)
– 不需要封装页面所有的元素
– 同样的行为不同的结果可以封装成不同的方法,方便后续调用,不然不便于统计。

三、代码实战。
// 面向对象
public class frontLogin {
    public static void main(String[] args) {
        WebKeyword web =new WebKeyword();
        web.openBrowser("chrome");
        web.visitURL("https://ecshop.test2.shopex123.com/");
        //1、登录
        web.click("//a[text()='登录']");
        web.input("//input[@id='username']","13111111111");
        web.input("//input[@id='password']","123456");
        web.click("//a[@name='submit']");
        web.click("//a[text()='地址管理']");
        web.click("//span[text()='增加新地址']");
        web.click("//select[@id='province']");
        web.halt("1");
        web.runJsWithElement("scrollIntoView()","//option[text()='山东省']");
        web.runJsWithElement("click()","//option[text()='山东省']");

    }
// PageObject

public class AdminPageTest {
    public static void main(String[] args) {
        AdminPage admin=new frontLogin ();
        admin.openBrowser("chrome");
        admin.visitURL(https://ecshop.test2.shopex123.com/");
        admin.LoginAdmin("admin","123456");
        admin.toAddMenu();
        admin.addRandomGoods();

        UserPage user=new UserPage();
        user.setDriver(admin);
        user.visitURL("https://ecshop.test2.shopex123.com/");
        user.loginUser();
        user.closeBrowser();
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/998781.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号