一、WebDriver框架开发实战

1、框架的思想

(1)什么是框架?

  • 框架是可以被应用开发者定制的应用骨架

(2)为什么要写框架?

  • 提高脚本可维护性
  • 提高编写脚本的速度
  • 提高脚本可阅读性

(3)框架的几个要素?

  • driver管理,等待管理,常用方法封装,LOG,常用类封装,数据,失败重跑等等

2、前期准备-框架搭建前期步骤

  • 通过IDEA新建个项目名TestAutomation2019的Maven工程
  • 导入Selenium和TestNG对应的jar包
  • 在工程根目录新建一个driver文件夹,放置driver
  • 新建一个包:com.lixx

3、Driver管理

  • 在com.lixx下新建driver包
  • 在driver包下新建SeleniumDriver类
  • 封装driver
  • 代码实例演示
  • 测试
package com.lixx.drivers;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class SeleniumDriver1 {
public static WebDriver driver;
public static WebDriver initialDriver(String browser){
//获取当前工程根目录
String path = System.getProperty("user.dir");
if (browser.equals("chrome")){
System.setProperty("webdriver.chrome.driver", path + "/driver/chromedriver.exe");
driver = new ChromeDriver();
}else if (browser.equals("ie")){
System.setProperty("webdriver.ie.driver", path + "/driver/IEDriverServer.exe");
driver = new InternetExplorerDriver();
}else if (browser.equals("firefox")){
driver = new FirefoxDriver();
}else if (browser.equals("edge")){
System.setProperty("webdriver.edge.driver", path + "/driver/MicrosoftWebDriver.exe");
driver = new EdgeDriver();
}else {
System.out.println("您输入的浏览器名称有误,请确认!");
}
return driver;
}
}

4、元素等待方法封装

  • 在com.autoframework下新建element包
  • 在element包下新建WebElementUtils类并继承SeleniumDriver类
  • 二次封装findElement和findElements方法
  • 代码实例演示
  • 测试

5、Log4j整合

  • 配置pom.xml文件,添加log4相关jar包
  • 在工程根目录下新建configs文件夹并新建log4j.properties文件
  • 在log4j.properties配置文件中加入需要的配置
  • 新建com.lixx.logger包
  • 在logger包下新建LoggerController类
  • 代码示例
  • 测试

6、框架常用类整合

常用类封装-随机数封装

  • 在com.autoframework下新建tools包
  • 在tools包下新建RandomNum下
  • 实现时间戳和随机数生成
  • 部分常用方法封装实例演示
  • 测试

 截图方法封装

Assert类封装

通过TestNg做数据驱动

PO理念的引入

监听错误自动重跑和截图

  • 从github上下载已经封装好的程序 https://github.com/NetEase/arrow
  • 复制到项目里面,修改各个类导入包的路径
  • 删除我们不想要PowerEmailableReporter.java文件
  • 在config文件下新建config.properties文件,并添加如下:retrycount=1
  • 修改ConfigReader.java类,读取配置文件路径
  • 添加自动截图方法到TestResultListener.java类
  • 在运行的.xml文件里面添加监听

 

最新文章

  1. 第九章 springboot + mybatis + 多数据源 (AOP实现)(转载)
  2. Spring Trasnaction管理(2)- 事务AOP
  3. js简易函数性能测试器
  4. Google搜索命令语法大全
  5. FSMC stm32
  6. 用c#读取并分析sql2005日志
  7. LightOJ 1074 Extended Traffic SPFA 消负环
  8. null类型的字段加1
  9. (Problem 21)Amicable numbers
  10. CentOS6.5 安装snorby
  11. MFC中PeekMessage的使用,非阻塞消息循环
  12. javascript中slice() splice() concat()操作数组的方法
  13. Linux搭建Apache+Tomcat实现负载均衡
  14. C++游戏开发需要阅读的书籍
  15. 为app录制展示gif
  16. Spring Boot 入门案例与配置说明
  17. [Winform]通过钩子监控键盘操作和鼠标移动
  18. Android中Handler引起的内存泄露
  19. 第三课 操作系统开发之x86模拟环境搭建
  20. Executors相关的类(线程池)

热门文章

  1. golang测试
  2. Httpd服务入门知识-https(http over ssl)安全配置
  3. mysql创建临时表,将查询结果插入已有的表
  4. Access denied for user '密码'@'192.18.0.0' (using password: YES)
  5. qt 静态库中貌似不能使用静态属性
  6. 201671030108后新莉+实验十四 团队项目评审&课程学习总结
  7. thinkPHP5框架路由常用知识点汇总
  8. 【PHP】系统部署
  9. Windows10 Docker镜像加速
  10. JavaScript基础入门01