独立搭建UI自动化测试框架分享

今天给大家分享一个selenium+testng+maven+ant的UI自动化,可以用于功能测试,也可按复杂的业务流程编写测试用例,今天此篇文章不过多讲解如何实现CI/CD,只讲解自己能独立搭建UI框架,如果有其他好的框架也可以联系我,分享一下,或者下面讲解的有不明白的地方也可以留言,需要阅读者有一定的java语言基础,文档中的有些注解我就不详细介绍了,感兴趣的可以去java官网查看。

废话就不多说了,开始实例讲解。

开发工具:idea2017

开发平台:windows

举例模板:百度搜索

开发语言:java

可拓展mysql,shell,api 等

提供:代码demo—打包形式发出

新建java模块:

有两种创建方式

1. 点击欢迎屏幕上的 Create New Project

独立搭建UI自动化测试框架分享_第1张图片

2. 或选择 File| New | Project

独立搭建UI自动化测试框架分享_第2张图片

看到打开的新建项目向导窗口

如果你要在现有项目中添加一个模块:打开要添加模块的项目,然后选择File | New | Module.

独立搭建UI自动化测试框架分享_第3张图片

填写好相关的group和artifact后点击【Next】,最后Finish。

引入驱动,--与src 同级目录新建一个文件夹 lib;

引入pom.xml ,目的是托管所有依赖jia包;--与src同级目录

引入 build.xml,目的是与Jenkins关联实现CI;

引入log4j2.xml,目的打印日志;--在src目录下

新建公共模块包:目的存放公共类

新建元素模块包:目的存放测试元素;

新建步骤模块包:目的测试用例的执行步骤;

新建执行测试模块包:目的执行测试用例;

新建 conf模板包:目的放系统配置文件;

整个项目目录结构如下图所示:

独立搭建UI自动化测试框架分享_第4张图片

下面是实例化讲解:

1. 新建class—runDriver.class 用于启动浏览器驱动—公共方法

独立搭建UI自动化测试框架分享_第5张图片

我是基于windows系统开发的,如果是mac 替换一下驱动就行

2. 新建BrowerDriver.class 对浏览器的公共方法

独立搭建UI自动化测试框架分享_第6张图片

此类下面有 打开和关闭浏览器的公共方法;

3. 新建读写系统文件ReadPreperties.class类

独立搭建UI自动化测试框架分享_第7张图片

4.     还有很多其他公共的类,在此就不一一讲解了,稍后会提供demo

比如:自动生成手机号,姓名,身份证号等

5.     以百度 为例 开始写 元素类

在com.ui.auto.element 下新建BaiDuElement.class

独立搭建UI自动化测试框架分享_第8张图片

6.     在com.ui.auto.step下新建BaiDuStep.class

独立搭建UI自动化测试框架分享_第9张图片

7.     在com.ui.auto.case 下新建BaiDuCase.class

独立搭建UI自动化测试框架分享_第10张图片

需要引入testng jra包的三个注解
@BeforeTest

将会在一个元素定义的所有里面所有测试方法执行之前运行,在此 先运行 打开浏览器 操作

@Test

要被执行的测试方法

@AfterTest

将会在一个元素定义的所有里面所有的测试方法执行之后运行

通过上面几步 一个模块的ui测试流程基本讲解完成,这个框架的目的就是便于维护,里面也可以添加 api 及 数据源的操作,数据库的关联等,

如何和Jenkins关联呢?

需要在 与src 同目录下新建一个 testng.xml 内容如下:

独立搭建UI自动化测试框架分享_第11张图片

新建 Jenkins-job 后代码上传到gitlab 上,执行 BaiDuTestng.xml就行(这是和ant 关联);

还有另外一种方法 maven,在pom 里配置相关的testng.xml,如下例子

独立搭建UI自动化测试框架分享_第12张图片

如何通过ant 和Jenkins 实现 CI 及 maven 和Jenkins实现CI 的操作,下期在做讲解,希望通过此篇文章能给您带来 有用的知识,谢谢!

最后工程的整体目录结构,如下图:

独立搭建UI自动化测试框架分享_第13张图片

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

你可能感兴趣的:(软件测试,ui,软件测试,功能测试,自动化测试,程序人生,职场和发展)