java+testng+selenium的自动化测试代码

前言

这是用testng框架加selenium做的一个UI自动化测试的项目

Java代码

package com.justin;/*** @author justin-zhu* <p>* 2022年02月23日 16:48*/import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.*;
import java.util.concurrent.TimeUnit;public class HelloTestNG {private WebDriver driver;@BeforeMethodpublic void setBefore(){System.setProperty("webdriver.chrome.driver","C:\\Users\\betalpha-qa\\code\\testcode\\TestNG-Demo\\src\\main\\resources\\chromedriver.exe");//打开浏览器,使其最大化,并隐性等待两秒钟driver = new ChromeDriver();driver.manage().window().maximize();driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);}@AfterMethodpublic void setAfter(){//结束驱动程序进程,关闭浏览器driver.quit();}@Test(groups = {"login"})public void login() throws InterruptedException {//输入网址(输入本地项目的URL,下面为本地项目的登陆界面)driver.get("http://192.168.0.188/webapp/session/login");driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);//使用其方法获取浏览器类型,并断言(如果断言失败,不会执行下面代码)String browserType = driver.getTitle();Assert.assertEquals("Google", browserType);//获取账号框定位WebElement userName = driver.findElement(By.xpath("//*[@id=\"app\"]/div/div/form/div/div[2]/div/div[1]/div/input"));//获取密码框定位WebElement password = driver.findElement(By.xpath("//*[@id=\"app\"]/div/div/form/div/div[3]/div/div[1]/div/div/span/input"));//获取验证码框定位WebElement authCode = driver.findElement(By.xpath("//*[@id=\"app\"]/div/div/form/div/div[4]/div/div/div[1]/div/input"));WebElement loginButton = driver.findElement(By.xpath("//*[@id=\"app\"]/div/div/form/div/div[5]/div/div/div/button"));//输入账号密码登录,并点击登录userName.sendKeys("jusitn@qq.com");password.sendKeys("123456");authCode.sendKeys("1234");driver.manage().timeouts().implicitlyWait(5,TimeUnit.SECONDS);loginButton.click();driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);//获取登录界面的title,验证登录成功WebElement title = driver.findElement(By.xpath("//*[@id=\"logo\"]/div/div/div[1]/h1"));String actual = title.getText();Assert.assertEquals(actual, "指数研发与管理平台");}@Test(description = "定位百度一下")public void testBaiDu(){//输入网址driver.get("https://www.baidu.com/");driver.manage().timeouts().implicitlyWait(2,TimeUnit.SECONDS);//定位到百度一下按钮WebElement name = driver.findElement(By.id("su"));String text = name.getAttribute("value");Assert.assertEquals(text, "百度一下");}@Test(groups = {"fast"})public void aFastTest(){System.out.println("Fast test");}@Test(groups = {"slow"})public void aSlowTest(){System.out.println("Slow test");}}

配置文件

要想上面的test能跑起来,还需要再pon.xml文件里面添加以下依赖

<!-- https://mvnrepository.com/artifact/org.testng/testng --><dependency><groupId>org.testng</groupId><artifactId>testng</artifactId><version>6.14.3</version><scope>test</scope></dependency>

这是testng框架的依赖,有了这个依赖testng的注释才会生效

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-server --><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-server</artifactId><version>3.14.0</version></dependency>

如果你只在本地运行代码,那么有selenium-java就够了;但是如果要在远程调用,就需要配置该selenium-server依赖

     <dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-chrome-driver</artifactId><version>2.42.2</version></dependency>

这是想要再界面上操作元素配置的依赖

扩展

testng用例可以直接运行java代码,也可以配置testng.xml文件进行用例的执行

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" ><suite name = "testProj"><test name = "testDemo1"><!--        .XML中指定组内的某些方法,include为执行,exclude为不执行--><groups><run><exclude name="fast"/><exclude name="slow"/><include name="login"/></run></groups><!--        .XML指明测试类,按照类名执行--><classes><class name="com.justin.HelloTestNG"/></classes><!--        .XML指定包名,执行包内的所有测试类-->
<!--        <packages>-->
<!--            <package name="com.justin"></package>-->
<!--        </packages>--></test><listeners><listener class-name="org.uncommons.reportng.HTMLReporter"></listener><listener class-name="org.uncommons.reportng.JUnitXMLReporter"></listener></listeners>
</suite>

java+testng+selenium的自动化测试代码相关推荐

  1. java testng 优化_Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

  2. 自动化测试框架selenium+java+TestNG——配置篇

    最近来总结下自动化测试 selenium的一些常用框架测试搭配,由简入繁,最简单的就是selenium+java+TestNG了,因为我用的是java,就只是总结下java了. TestNG在线安装: ...

  3. selenium java框架_自动化测试框架selenium+java+TestNG——配置篇

    最近来总结下自动化测试 selenium的一些常用框架测试搭配,由简入繁,最简单的就是selenium+java+TestNG了,因为我用的是java,就只是总结下java了. TestNG在线安装: ...

  4. java接口自动化Excel占位符_基于maven+java+TestNG+httpclient+poi+jsonpath+ExtentReport的接口自动化测试框架...

    接口自动化框架 项目说明 本框架是一套基于maven+java+TestNG+httpclient+poi+jsonpath+ExtentReport而设计的数据驱动接口自动化测试框架,TestNG ...

  5. 设计自己的基于Selenium 的自动化测试框架-Java版(1) - 为什么selenium还需要测试框架?...

    本人自动化测试接触时间不久,如有误导,概不负责. 既然有了selenium这个开源的自动化的工具,为什么还要我们自己再去写一个框架? Selenium是自动化的工具,当然是可以用在测试领域,但他不是为 ...

  6. 测试小白基于java的selenium自动化测试环境搭建

    本人是一个软件测试小白,自己在研究自动化测试时,真的入了不少坑,直到现在,才勉强将环境搭建了起来. 在此,我随随便便总结了一下基于java的selenium自动化测试环境搭建,送给正在学习软件测试的你 ...

  7. 设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层

    设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层 给我们的框架分为3层,分别是叫逻辑层,数据层,对象层. 这三层的存储格式都用xml来表示. 1.逻辑层 (test ...

  8. 设计自己的基于Selenium 的自动化测试框架-Java版(2) - 定义自己的工作流程

    设计自己的基于Selenium的自动化测试框架-Java版(2) -定义自己的工作流程 Work flow chart 上图是整个工作流程,红色虚线上面的需要手动来完成,红色虚线下面的实现自动化. 我 ...

  9. Selenium:网页自动化测试代码(Python版)

    本篇文章要做的是关于一个自动化测试. 目录 一.准备工具 1.编程语言及编译器 2.需要的包 3.浏览器 4.你需要在你的Python提前安装库. 二.代码部分 1.登录页面 2.下一步是进入主页 3 ...

最新文章

  1. 云服务器安装虚拟机方法,云服务器安装虚拟机方法
  2. 程序员上帝视角解读“旅行青蛙”,你的呱真的在旅行嘛?
  3. css js写在一起 vue_如何把vue2.0 和 animate.css合并在一起使用(详细教程)
  4. Java 算法 降价机器人
  5. Android 系统性能优化(30)---Android性能全面分析与优化方案研究
  6. 一本通1586【 例 2】数字游戏
  7. 【第三课】ANR和OOM——贪快和贪多的后果(上)
  8. php居中函数,PHP实现的自定义图像居中裁剪函数示例
  9. p2p - cdn传输技术杂谈
  10. mapgis二次开发教程
  11. 20160402系统集成管理工程师(test3)
  12. 人脸识别长篇研究 | (一)发展与市场(二)技术与流程(三)行业应用
  13. python columns函数_pandas 对 column 使用函数
  14. 【架构】1304- 如何画出一张优秀的架构图
  15. 数据量太大,节省内存的几种方式
  16. 原生js实现简易版消消乐
  17. unix常用操作命令
  18. MODE-CSR相关
  19. 微信公众号怎么申请-微信公众号使用教程1
  20. 微信聊天机器人-存储好友分享消息

热门文章

  1. 先验分布,后验分布,似然函数
  2. 无需插件修改chrome浏览器UA标识为手机版
  3. <Android开发> Android vold - 第四篇 vold 的NetlinkHandler类简介
  4. wget OpenSSL: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
  5. 六轴加速陀螺仪MPU6500/MPU6050使用及DMP库移植,含记步器功能
  6. 集线器,转发器,网桥,以太网交换机
  7. qt -- QTableWidget的使用
  8. 明明现在科技发达了,互联网公司却纷纷搞起了996, 996没有未来
  9. python读取word文档中的图片_【Python 3 获取Word所有图片】
  10. Vdbench的校验原理