zoukankan      html  css  js  c++  java
  • Selenium Java Testng 多浏览器测试3

    一、eclipse 中配置testng

    1.1 安装Testng

    Help >> Install New Software >>
    点击Add然后随便输入一个名字,地址输入:https://dl.bintray.com/testng-team/testng-eclipse-release/
    确认之后会进行检索,如下图:


    下一步并同意协议即可进行安装。

    二、编写程序测试

    2.1 单浏览器测试

    编写如下代码:

    点击 Run As 会出现Testng的选项,如果你的没有,可能是你的Testng没有安装或没有安装成功。

    当你在src/main/java编写测试代码的时候,可能会出现无法引用Testng的情况,这可能是因为你在pom.xml文件中进行了限制。

    完整pomx.xml代码如下:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.amnotgcs</groupId>
      <artifactId>amnotgcs</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      
      <dependencies>
      
    	<dependency>
    	  <groupId>org.testng</groupId>
    	  <artifactId>testng</artifactId>
    	  <version>6.14.3</version>
    	  <!-- <scope>test</scope> -->
    	</dependency>  	
    	
    	<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
    	<dependency>
    	    <groupId>org.seleniumhq.selenium</groupId>
    	    <artifactId>selenium-java</artifactId>
    	    <version>3.141.59</version>
    	</dependency>
    		
      </dependencies>
      
    </project>
    

    更多关于maven配置的信息,可参考Testng官网或者mavenrepository.com自行搜索添加

    2.2 测试结果:

    测试结果如下图:

    2.3 多浏览器测试

    编写测试主类:

    package cn.amnotgcs;
    
    import org.testng.annotations.AfterMethod;
    import org.testng.annotations.BeforeClass;
    import org.testng.annotations.BeforeMethod;
    import org.testng.annotations.Parameters;
    import org.testng.annotations.Test;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.edge.EdgeDriver;
    
    public class toEdge {
    
    	WebDriver driver;
    	String baseUrl;
    	
    	@Parameters("browser")
    	@BeforeClass
    	public void beforeTest(String Browser) {
    		if(Browser.equalsIgnoreCase("edge")) {
    			driver = new EdgeDriver();
    		} else if(Browser.equalsIgnoreCase("chrome")) {
    			driver = new ChromeDriver();
    		}
    	}
    	
    	@BeforeMethod
    	public void setUp() throws Exception {
    		baseUrl = "http://www.sogou.com";
    	}
    	
    	@Test
    	public void visitSogou() {
    		driver.get(baseUrl);
    		driver.findElement(By.id("query")).sendKeys("这里输入测试关键字");
    		driver.findElement(By.id("stb")).click();
    		try {
    			Thread.sleep(3000);
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
    	}
    	
    	@AfterMethod
    	public void tearDown() throws Exception {
    		driver.quit();
    	}
    
    }
    
    

    编写测试testng.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    
    <suite name="Suite" parallel="tests" thread-count="2">
    	<test name="EdgeTest">
    		<parameter name="browser" value="edge" />
    			<classes>
    				<class name="cn.amnotgcs.toEdge" />
    			</classes>
    	</test>
    	<test name="ChromeTest">
    		<parameter name="browser" value="chrome" />
    			<classes>
    				<class name="cn.amnotgcs.toEdge" />
    			</classes>
    	</test>
    </suite>
    

    testng.xml上右键,作为Testng程序运行。
    测试结果:

    控制台输出:

    两个窗口是同时出现的,也就是并发测试。
    这里使用的是Chrome&Edge,实际测试时一般会测试不同内核的浏览器,以测试观察目标项目的兼容性。

    有了计划记得推动,不要原地踏步。
  • 相关阅读:
    anguar使用指令写选项卡
    前端性能优化
    有关楼层般的侧导航
    我对面向对象的深刻理解
    jq中的表单验证插件------jquery.validate
    JavaScript 语言中的 this
    闭包,作用域链,垃圾回收,内存泄露
    angular.extend、angular.$watch、angular.bootstrap
    Angular路由(三)
    Angular基础(二)
  • 原文地址:https://www.cnblogs.com/amnotgcs/p/13775292.html
Copyright © 2011-2022 走看看