【Java自动化学习】Web自动化

目录

一、环境安装

二、元素定位、等待方式

三、下拉框定位

四、iframe 切换元素定位

五、Junit单元测试框架

六、Allure测试报告

Allure安装配置

Allure使用生产测试报告

Allure配置依赖+pon.xml

在pom.xml中打开终端

定制Allure

七、关键字封装

八、PO设计模式

九、TestNg测试框架

TestNG环境依赖准备

TestNG注解

TestNg运行方式

TestNG 断言

忽略测试注解@Ignore

用例执行顺序@Test( priority = ?)

超时注解@Test(timeOut = ?)

依赖测试注解@Test(dependsOnMethods={"测试方法名"})

TestNG并行测试

@DataProvider 参数化注解 


一、环境安装

环境搭建安装见此博客文章链接:https://blog.csdn.net/qq_73471456/article/details/130836494

二、元素定位、等待方式

见此之前的博客文章:selenium操作使用方式

三、下拉框定位

四、iframe 切换元素定位

 

注意事项:连续定位2个iframe

五、Junit单元测试框架

Junit框架见此博客文章:https://blog.csdn.net/qq_73471456/article/details/130856929

六、Allure测试报告

Allure测试报告有以下好处:
1.它提供了一个直观的、易于阅读的报告界面,可以方便地査看测试结果和统计数据。
2.报告界面具有交互性,可以通过图表和图形化界面快速检索问题和错误。
3.它能够提供丰富的测试数据分析,包括用例执行时间、失败率、通过率等等
4.支持多种编程语言和框架,如Java、Python、Ruby、PHPUnit等,
5.与各种CI/CD工具集成,如Jenkins、TeamCity、Bamboo等。
6.可以生成历史记录报告,并支持跨团队共享。
7.向所有相关人员提供清晰的测试结果,减少沟通,提高团队协作效率。
8.支持自定义插件,可扩展性强。


官方:https://docs.gameta.io/allure-report/

Allure安装配置


第一步:安装Java的JDK环境(推荐1.8版本)

第二步:安装Allure

(1) mac/linux: 下载tar
(2) windows: 下载 zip

下载commandline包后,放在c盘或者d盘某个目录下面并解压

  • 配置环境变量:解压后将 bin 目录加入PATH环境变量

安装贴子:https://ceshiren.com/t/topic/3386
检测allure有没有安装好(win+r:输入cmd): allure --version

Allure使用生产测试报告

Allure配置依赖+pon.xml

<dependencies>
  <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>RELEASE</version>
    <scope>test</scope>
  </dependency>
   <dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest</artifactId>
    <version>2.2</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>io.qameta.allure</groupId>
    <artifactId>allure-junit5</artifactId>
    <version>2.13.6</version>
    <scope>test</scope>
  </dependency>
</dependencies>

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <aspectj.version>1.8.10</aspectj.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.0.0-M5</version>
            <configuration>
                <includes>
                    <include>**/*Test.java</include>
                </includes>
            </configuration>
        </plugin>
    </plugins>
</build>

在pom.xml中打开终端

举例

详细包名.类名为com.Test01

定制Allure

@Epic("这是一个大模块注解")

@Feature("这是子模块1注解")

七、关键字封装

作用:项目中经常要做的操作,可以提前封装,使用的时候,直接调用函数即可。
访问 下拉框 iframe 等待 关闭

selenium自动加载浏览器驱动依赖:

        <dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>4.4.1</version>
        </dependency>

封装登录不同浏览器的代码示例:

八、PO设计模式

        Page Object也就是PO,也可以叫POM,是Selenium自动化测试项目主流的设计模式之一。
        该模式将一个 Web项目分解为多个页面对象,每个页面对象代表程序中的一个页面或者一个独立的 UI 组件。通过封装页面元素和方法,可以实现对页面对象的访问和操作。

        PageObject设计模式:是将某个页面的所有"元素(包含控件)属性"及"元素操作"封装在1个类(Class)里面。若元素定位发生变化,只需要调整这个类中的代码。 

        举个例子:拿商城系统来说,商城系统流程为登录-选择商品-添加购物车-下单-支付

        现在使用PO模式来设计:登录类来封装登录页面操作相关的,商品类来封装商品页面操作相关的,购物车类来封装购物车页面操作相关

 好处:通过对界面元素的封装减少冗余代码,在后期维护中,若元素定位发生变化,只需调整页面元素封装的代码,提高测试用例的可维护性。

九、TestNg测试框架

Testng是一套开源测试的单元测试框架。它的灵感来源于JUnit,它的目的是优于JUnit。


TestNG和JUnit都是Iava中常用的单元测试框架,二者的共同点包括
1.都是基于注解的测试框架
2.都可以对Java代码进行单元测试
3.都支持断言机制

TestNG比Junit的优点如下:
1.TestNG支持更多的注解:@BeforeGroups、@AfterGroups等
2.TestNG支持并行测试,在测试大量数据时运行速度更快
3.TestNG可以在xml文件中配置测试用例,并且可以实现测试用例的分组执行,批量执行等功能
4.TestNG支持更多的参数化方法,比如@DataProvider;
5.TestNG可以在报告中生成时间轴图表,方便测试结果的分析。

TestNG环境依赖准备

<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.14.3</version>
    <scope>test</scope>
</dependency>

TestNG注解

@BeforeSuite      在该套件的所有测试都运行在注释的方法之前,仅运行一次

@AfterSuite         在该套件的所有测试都运行在注释方法之后,仅运行一次

@BeforeClass      在调用当前类的第一个测试方法之前运行,注释方法仅运行一次

@AfterClass         在调用当前类的第一个测试方法之后运行,注释方法仅运行一次

@BeforeTest        注释的方法将在属于test标签内的类的所有测试方法运行之前运行

@AfterTest           注释的方法将在属于test标签内的类的所有测试方法运行之后运行

@BeforeMethod    注释方法将在每个测试方法之前运行

@AfterMethod      注释方法将在每个测试方法之后运行

@DataProvider     标记一种方法来提供测试方法的数据。 注释方法必须返回一个object[ ][ ],其中每个object[ ]可以被分配给测试方法的参数列表。 要从该DataProvider接收数据的@Test方法需要使用与此注释名称相等的dataProvider名称

@Factory             将一个方法标记为工厂,返回TestNG将被用作测试类的对象。该方法必须返回object[ ]

testng层级管理
BeforeSuite > BeforeTest > BeforeClass > BeforeMethod

TestNg运行方式


1.直接右键运行
2.xml方式运行,IDEA可以右键新建testng.xml来运行,在文件名和文件内部点击均可(具体操作方法自行百度

(1)IDEA创建的项目默认不会生成testng.xml(用于控制测试执行的执行)文件,就需要在根目录手动创建该文件。

(2)同时需要在pom.xml文件中关联设置testng.xml
(3)testng.xml可以安装testng插件

TestNG 断言


TestNG 断言是用于对测试结果进行验证的方法,可以判断测试是否通过或失败。TestNG 提供了一组方便易用的断言方法,可以在测试中使用。


1.assertEquals(Object expected, Object actual):判断两个对象是否相等,如果不相等则抛出AssertionError异常,并输出错误信息。

2. assertTrue(boolean condition):判断给定条件是否为 true,如果不为 true 则抛出 AssertionError 异常,并输出错误信息。

忽略测试注解@Ignore

用例执行顺序@Test( priority = ?)

超时注解@Test(timeOut = ?)

timeOut的属性的单位为毫秒

依赖测试注解@Test(dependsOnMethods={"测试方法名"})

TestNG并行测试

并行是指同时运行多个测试用例来提高测试效率。可以通过设置testng.xml配置文件中的“parallel”属性来启用并发测试。

@DataProvider 参数化注解 

@DataProvider注解必须和@test注解一起使用,不然没有任何意义

1、创建一个方法,方法的返回值必须是object[][]   或者object[]、lteraTor<object[]>的,在方法上加上@dataProvider注解

DataProvider的用途是:
(1)在执行用例的时候dataProvider迭代每组数据都是作为一个用例执行
(2)在测试数据有规律的情况下,免去了添加testXML测试数据的烦恼,直接将测试数据,按个或者组,放到dataProvider中即可
(3)注意:dataProvider作为数据提供者只能返回0bject和lteraTor<object[]>类型的数据。

1.定义一个函数,函数名随意取,使用@DataProvider注解,给provider取名字,该函数返回一个二维数组
2.使用参数时,用例中,带上name名

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值