用java实现的一个web_UI层自动化测试框架

一、框架图

二、框架说明

web自动化框架基于selenium2 webDriver。在此基础上进行封装扩展,分三层架构:object、task、case。

Object层:提取web页面的元素对象

Task层:业务处理。

Case层:测试用例过程。

三、支持的浏览器

1.Firefox

2.Chrome

3.IE

4.HtmlUnit

四、搭建环境

把lib下的selenium-server-standalone-2.45.0.jar和web_auto_api.jar导入项目的path:

其中web_auto_api.jar是对selenium2 webDriver的封装扩展,详情见我的github另一个项目:https://github.com/Zongrong/web_auto_api

java自动化测试框架 idea java自动化测试框架设计_Test

五、编写自动化case

以gitHub新建repository和删除repository为例:

1. 修改config.properties文件

2. 获取页面对象属性

1>properties文件:在obj目录下的相应文件中记录页面元素的属性值。 比如xpath、id、name等信息。具体记录哪个属性值由case开发者决定。

java自动化测试框架 idea java自动化测试框架设计_properties文件_02

3. 业务处理

在包test.task.XXX(其中XXX代表业务模块名,比如“login”表示登录模块

)下创建业务类,比如“LoginTasks.java” :

a. 该类继承父类:TaskBase

b. 在构造方法中创建对象类的实例

java自动化测试框架 idea java自动化测试框架设计_java web测试框架_03

c. 获取页面对象,并进行业务处理

java自动化测试框架 idea java自动化测试框架设计_Test_04

java自动化测试框架 idea java自动化测试框架设计_properties文件_05

4. case层

在包test.task.XXX(其中XXX代表业务模块名,比如“example”,这里表示这是一个举例的模块下创建业务类,比如“ExampleCases.java”:

a. 该类继承父类:TestBase

b. 如果有测试数据(在data目录下的properties文件),要加载,并初始化。如果没有,可以不加载。

c.创建需要的业务类对象。

java自动化测试框架 idea java自动化测试框架设计_java自动化测试框架 idea_06

d.写case。case的方法上面要引用“@Test”标注

java自动化测试框架 idea java自动化测试框架设计_Test_07

java自动化测试框架 idea java自动化测试框架设计_Test_08

支持的标注:

1>. @BeforeClass:所有case执行前执行

2>. @AfterClass:所有case执行后执行

3>. @Before:每一个case执行前执行

4>. @After:每一个case执行后执行

5>. @Parameters:case参数数据

6>. @Test:case用例

@Test(depends="xxx;yyy",parameter="DDD")

注意:为了业务处理和数据分离,所以建议把用例中用到的数据放在“data”目录的properties文件中。

java自动化测试框架 idea java自动化测试框架设计_properties文件_09

e. case支持参数化

1>.参数数据必须为类型为Object的二维数组,并用标注"@Parameters"

2>.case标注为"@Test(parameter="xxx") ",xxx为参数数据方法名

java自动化测试框架 idea java自动化测试框架设计_java web测试框架_10

f. case支持依赖:某case执行前,需要先执行其它case。

1>.用标注:@Test(depends="xxx"),xxx为依赖的case名,如果依赖多个case,case名用分号隔开。

java自动化测试框架 idea java自动化测试框架设计_数据_11

5. case写完后要把java文件路径放入test.cases.AllCases

java自动化测试框架 idea java自动化测试框架设计_Test_12

六、调试运行case

1.调试单个case

在case 的java文件中 Run As -> Java Application

java自动化测试框架 idea java自动化测试框架设计_properties文件_13

2. 运行所有case

在test.cases.AllCases中Run As -> Java Application

java自动化测试框架 idea java自动化测试框架设计_java web测试框架_14

七、结果、日志

case运行完后会生成结果和日志文件

java自动化测试框架 idea java自动化测试框架设计_java web测试框架_15