Maven+testng+yaml:Selenium Page Object模式实现

发表于:2017-11-23 17:05

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:__Chuckie    来源:51Testing软件测试网采编

  第一篇、搭建selenium开发环境
  1、准备相关的Java环境
  下载jdk 1.8
  http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  Java SE Development Kit 8u121
  下勾选:Accept License Agreement
  笔者是64位windows环境:选择如图版本下载安装
  2、配置环境变量
  3、准备自己的开发ide
  笔者使用的intellij ide所以在这里介绍的都是这种工具,对于使用eclipse的童鞋说声抱歉了
  选择File》New Project》Maven,填写好相关信息
  创建maven工程OK。
  第二篇:配置工程pom文件,下载相关依赖
  笔者使用到selenium和testng相关资源和yaml解析包(后续介绍如何使用),pom配置如下:
  第三篇:Page Object模式实现测试代码封装
  说起page object模式最大的优势在于使代码更易懂,后期维护更加方便
  以下以网易云音乐web版本为例进行讲解
  工程整体架构:
  1、元素定位信息存储在yaml配置文件中,实现无需代码重新编译应对页面变更引起的元素定位方式的变动,/resources/locator目录下:
  2、要启动的浏览器,baseurl,数据库等配置信息存放在/resources/config目录下:
  3、对于yaml文件的解析和selenium基本方法的封装分别在ParseYamlUntil和WebDriverUntil两个类中完成,有些童鞋习惯用BasePage类来实现WebDriverUntil类的功能也是可以的,看个人喜好,实际作用相同。

  4、基本条件已经完成,开始page objcet的实现,以HomePage为例:
  * 借助面向对象的思想,页面即类,页面类中包含页面的属性和方法
  * 属性即页面元素,方法即页面元素的相关动作
  第四篇:测试方法实现
  完成了对HomePage和SearchResultPage的封装之后,结合testng实现测试方法
  package play;
  import org.testng.annotations.Test;
  import pages.HomePage;
  import pages.SearchResultPage;
  public class TestPlayMusic {
  @Test(description="搜索wild wild web歌曲并播放!")
  public voidtestSearchAndPlayMusic(){
  HomePage.cleanSearchInput();
  HomePage.inputSearchContent("wild wild web");
  HomePage.doSearchAction();
  SearchResultPage.handleIFrame();
  SearchResultPage.doPlayAction();
  }
  }
  可见,测试方法中直接调用的都是page中的方法,组合而成,简单易懂!
  第五篇:运行测试
  在工程目录下创建xml文件夹用于管理testng的配置文件,在xml下创建test.xml:
  右键选择Run,运行测试看看吧。
  第六篇:持续集成CI
  下载并启动tomcat,把下载的Jenkins的war包放在tomcat的webapp目录下,启动tomcat服务,打开浏览器,访问:localhost:8080/jenkins
  新建:maven项目,配置好源码管理
  配置post step:
  保存配置,在工程管理页面点击立即构建查看自己的成果吧
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号