TestNG PO web自动化测试

TestNG PO web自动化测试TextNG1.TestNG介绍1.1.TestNG是什么?TestNG是一个开源的自动化测试框架,其灵感来自于JUnit和Nunit,在此基础

欢迎大家来到IT世界,在知识的湖畔探索吧!

TextNG

1.TestNG介绍

1.1.TestNG是什么?

TestNG是一个开源的自动化测试框架,其灵感来自于JUnit和Nunit,在此基础上添加了一些新的功能,使其更方便,更强大。

官网:https://testng.org/doc/

1.2.TestNG能干什么?

1.2.1.用来进行测试用的编写,管理和批量运行

测试用例的管理层级:Suite->Test->class->method。通常一个方法代表一个测试用例

1.2.2.用来生成测试报告

1.3.TestNG怎么用?

主要通过Java注解实现测试用例的


@BeforeSuite:将会在testng定义的xml根元素里面的所有执行之前运行
@BeforeClass:将会在当前测试类的第一个测试方法执行之前运行
@BeforeMethod:将会在当前测试类的每一个测试方法执行之前运行
@BeforeTest:将会在一个元素定义的所有里面所有测试方法执行之前运行
@Test:标识为一个测试用例
			#alwaysRun : 如果=true,表示即使该测试方法所依赖的前置测试有失败的情况,也要执行
			#dataProvider : 选定传入参数的构造器。(@DataProvider注解将在后面章节介绍)
			#dataProviderClass : 确定参数构造器的Class类。(参数构造器首先会在当前测试类里面查找,如果参数构造器不在当前测试类定义,那么必须使用该属性来执行它所在的Class类)
			#dependsOnGroups : 确定依赖的前置测试组别。
			#dependsOnMethods : 确定依赖的前置测试方法。
			#description : 测试方法描述信息。(建议为每个测试方法添加有意义的描述信息,这将会在最后的报告中展示出来)
			#enabled : 默认为true,如果指定为false,表示不执行该测试方法。
			#expectedExceptions : 指定期待测试方法抛出的异常,多个异常以逗号(,)隔开。
			#groups : 指定该测试方法所属的组,可以指定多个组,以逗号隔开。组测试的用法将在后面文章单独介绍。
			#invocationCount : 指定测试方法需要被调用的次数。
			#invocationTimeOut: 每一次调用的超时时间,如果invocationCount没有指定,该参数会被忽略。应用场景可以为测试获取数据库连接,超时就认定为失败。单位是毫秒。
			#priority : 指定测试方法的优先级,数值越低,优先级越高,将会优先与其他数值高的测试方法被调用。(注意是针对一个测试类的优先级)
			#timeout : 指定整个测试方法的超时时间。单位是毫秒。
@AfterTest:将会在一个元素定义的所有里面所有的测试方法执行之后运行
@AfterMethod:将会在当前测试类的每一个测试方法执行之后运行
@AfterClass:将会在当前测试类的最后一个测试方法执行之后运行
@AfterSuite:将会在testng定义的xml根元素里面的所有执行之后运行

欢迎大家来到IT世界,在知识的湖畔探索吧!

1.3.1.安装插件

IntelliJ IDEA默认安装TestNG插件

eclipse插件安装:Eclipse的版本要在4.6以上才能安装该插件

1.3.2.在maven项目中添加依赖

欢迎大家来到IT世界,在知识的湖畔探索吧!<dependency>
   <groupId>org.testng</groupId>
   <artifactId>testng</artifactId>
   <version>6.14.3</version>
</dependency>
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.1.4</version>
</dependency>

1.3.3.编写测试用例

package com.test.amp.system;
import com.test.amp.base.BaseTest;
import org.openqa.selenium.By;
import org.testng.annotations.Test;

public class Login extends BaseTest {

    @Test
    public void login(){
        webDriver.get(getFullUrl("/login"));
        webDriver.findElement(By.xpath("//*[@id=\"app\"]/div/form/div[1]/div/div/input")).sendKeys("admin");
        webDriver.findElement(By.xpath("//*[@id=\"app\"]/div/form/div[2]/div/div/input")).sendKeys("admin123");
        webDriver.findElement(By.xpath("//*[@id=\"app\"]/div/form/div[3]/div/div[1]/input")).sendKeys("000");
        webDriver.findElement(By.xpath("//*[@id=\"app\"]/div/form/div[4]/div/button")).click();
    }

}

1.3.4.创建TetsSuite Xml配置文件

欢迎大家来到IT世界,在知识的湖畔探索吧!<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="All Test Suite">

    <!-- 打开浏览器 -->
    <test verbose="2" preserve-order="true" name="openChrome">
        <classes>
            <class name="com.test.amp.base.OpenChrome">
                <methods>
                    <include name="open"/>
                </methods>
            </class>
        </classes>
    </test>

    <!--  系统登录  -->
    <test verbose="2" preserve-order="true" name="login">
        <classes>
            <class name="com.test.amp.system.Login">
                <methods>
                    <include name="login"/>
                </methods>
            </class>
        </classes>
    </test>

    <!--  系统管理-用户管理-->
    <test verbose="2" preserve-order="true" name="user">
        <classes>
            <class name="com.test.amp.system.User">
                <methods>
                    <include name="queryByUserName"/>
                </methods>
            </class>
        </classes>
    </test>

    <!-- 系统监控-数据监控-->
    <test verbose="2" preserve-order="true" name="dataMonitor">
        <classes>
            <class name="com.test.amp.monitor.DataMonitor">
                <methods>
                    <include name="dataMonitorLogin"/>
                    <include name="changeSqlMonitorTab"/>
                </methods>
            </class>
        </classes>
    </test>

    <!--   关闭浏览器 -->
    <test verbose="2" preserve-order="true" name="quitChrome">
        <classes>
            <class name="com.test.amp.base.QuitChrome">
                <methods>
                    <include name="quit"/>
                </methods>
            </class>
        </classes>
    </test>
</suite>

1.3.5.运行测试用例

TestNG PO web自动化测试

1.3.6.查看测试报告

TestNG PO web自动化测试

然后运行测试用例。会在项目的目录创建一个test-output目录,emailable-report.html就测试报告

TestNG PO web自动化测试

在浏览器中打开查看测试报告

TestNG PO web自动化测试

1.4.什么是PO

PO是page object的缩写。是一种编写测试用的思想,即一个页面是一个对象,所有关于这个页面的测试用例都添加在这一个对象中进行管理。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/34233.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信