Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值

上篇我们给框架设计了一个配置文件,而且利用java反射机制优化了控制类,框架又进步了一些。这次我们可以再改几个小地方。首先看LoginPage.java和EmpPage.java这两个文件,它们都有getPageObjects()方法,里面有每个page object的获取过程:

Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第1张图片

我们可以把这一步单独拿出来,让它根据object名称来自动判断需要用哪一个定位器,这样就不用总想着到底需要是id还是name还是xpath了。先根据object的定位器修改一下object名称,加上后缀"_定位器":

loginPage.properties:

Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第2张图片

empPage.properties:

接着就该写判断步骤了,在com.testalliance.hrsystem.pageobj中新建Objects.java,复制如下代码:

Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第3张图片
Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第4张图片

这段代码不难理解,接受两个参数,一个是object名称,另一个是object值,每个传进来的object信息都会进行自动判断。

接着修改LoginPage.java和EmpPage.java:

LoginPage.java:

Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第5张图片
Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第6张图片
Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第7张图片
Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第8张图片
Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第9张图片

其实就是把定位过程放进每一个小的操作方法中,我还把getObjects()加了个参数,这样文件路径就可以传进来了。同理,EmpPage.java可以改成:

Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第10张图片
Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第11张图片

这样,page object的获取过程就被单独提取出来了,我们不需要总想着到底应该用哪种定位器了。

第二个我想修改的是测试结果返回值。目前所有的测试类都是里面都用Result = "TEST PASS"作为测试结果,比如TCLogin1.java:

Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第12张图片
image

不说专业不专业,每次写文字"TEST PASS"也容易出错不是?我们可以在测试类里把它们用整型0或1代替,统一返回用字符串表示。当然,你也还可以继续用布尔类型true和false,不过整型也是很多人常用的,我演示一下,以TCLogin1.java为例:

Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第13张图片
Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第14张图片

表示测试结果的result变量初始值为0,如果最后执行完毕是Pass则改成1。按照这个改变把另外几个测试类也改一下,把结果返回给TestRunner.java处理:

Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第15张图片
Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值_第16张图片

执行一下,测试通过。这篇的修改就到这儿。注意,现在TestRunner.java里面还有bug,举个例子,程序进入try语句后如果在执行测试方法时抛出了异常,dm.cleanUp()还能执行到吗?就执行不到了。或许执行结果都无法被打印出来,所以我们还要继续修改。

你可能感兴趣的:(Selenium Web Driver自动化测试(java版)系列下半部分(32) - 用数据驱动搭建测试框架雏形(5) - 分离Page Objects,修改测试结果返回值)