多个测试类 只使用同一个浏览器,同一个driver对象, 或者同一个页面的对象
如果是:多个测试类 只使用同一个浏览器,同一个driver对象, 或者同一个页面的对象,
只需要:
1. 创建一个基本的测试类(BaseTest),具有一个公共静态的driver属性, public static WebDriver driver
2. 给BaseTest类一个@Test(groups={"functionTests","checkinTests"})方法,
3. BaseTest类中创建@beforeTest,@afterTest注解的方法,  不要创建@Test注解的方法,
4. 其实,如果是PageObject设计模式,每个页面的对象创建也可以放在基础类BaseTest中,
5. 其他的测试类继承这个基本的测试类BaseTest, 此时,所有的测试类就具有了一个共同的唯一的" driver ", 页面对象句柄。
6. 给其他类中的方法也加上@Test(groups={"functionTests","checkinTests"})的注解,注解根据需要来设置。
7. 当前也可以在其他类的类上声明@Test(groups={"functionTests","checkinTests"})注解。
8. 如果某个测试类中有多个@Test注解的方法,则需要指定所有类中方法的执行顺序,而不是单个类中的,priority=0,开始
9. 经过实验,发现每个测试类执行都是从默认的priority=0开始,
   如果只指定一个类中的测试方法的顺序,此时一起执行全部测试类时,不会按照类的顺序进行执行,而是会按照默认的priority来执行
   由于每个测试中的测试方法默认的priority=0,所以testng会先将priority=0的方法执行完毕后,才会执行priority=1,2,3...
基础测试类
@Test(groups={"functionTests","checkinTests"})
public class BaseTest {
    public static WebDriver driver;
     @BeforeTest
     public void before(){
         System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
         driver = new ChromeDriver();
         driver.manage().window().maximize();
         driver.get("https://www.sogou.com/");
     }
      @AfterTest
      public void after() throws Exception{
          Thread.sleep(2000);
          driver.close();
          driver.quit();
      }
}
测试类
@Test(groups={"functionTests","checkinTests"})
public class TEST2 extends BaseTest{
     @Test(priority=0)
    public void TWO1(){
        System.out.println("TWO1");
        driver.findElement(By.className("sec-input")).sendKeys("testTWO--1--");
    }
     @Test(priority=1)
    public void TWO2(){
        System.out.println("TWO2");
        driver.findElement(By.className("sec-input")).sendKeys("testTWO--2--");
    }
     @Test(priority=2)
    public void TWO3(){
        System.out.println("TWO3");
        driver.findElement(By.className("sec-input")).sendKeys("testTWO--3--");
    }
}
测试类
public class TEST3 extends BaseTest{
    @Test(groups={"functionTests","checkinTests"},priority=3)
    public void THREE(){
        System.out.println("33333333333333333");
        driver.findElement(By.className("sec-input")).sendKeys("testTHREE----");
    }
}
测试类
public class TEST4 extends BaseTest{
    @Test(groups={"functionTests","checkinTests"},priority=4)
    public void FOUR(){
        System.out.println("444444444");
        driver.findElement(By.className("sec-input")).sendKeys("testFOUR----");
    }
}
testng.xml文件配置如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="classes" thread-count="1"> <test verbose="10" preserve-order="true" name="TestDebug">
<groups>
<run>
<exclude name="brokenTests" />
<include name="functionTests" />
</run>
</groups> <classes>
<class name = "com.test.ztest.Test.TEST2"/>
<class name = "com.test.ztest.Test.TEST3"/>
<class name = "com.test.ztest.Test.TEST4"/> </classes> </test> <!-- Test -->
</suite> <!-- Suite -->
分享完成,如有更好的方法,请不令赐教。
多个测试类 只使用同一个浏览器,同一个driver对象, 或者同一个页面的对象的更多相关文章
- Frameset框架,在同一个浏览器窗口中显示不止一个页面
		
总结一下.通过使用Frameset框架,可以在同一个浏览器窗口中显示不止一个页面. 先举个例子: 1 <frameset rows="100,*" cols="*& ...
 - python selenium 多个页面对象类使用同一个webdriver(即只打开一个浏览器窗口)
		
1 class BasePage(): 2 """selenium基类""" 3 4 def __init__(self, driver=N ...
 - unittest中更高效的执行测试用例一个类只需要打开一次浏览器
		
示例代码 baidu.py # _*_ coding:utf-8 _*_ import csv,unittest #导入csv模块 from time import sleep from seleni ...
 - Appscan_web安全测试工具  (含修改启动浏览器的方法)
		
安全测试应该是测试中非常重要的一部分,但他常常最容易被忽视掉. 尽管国内经常出现各种安全事件,但没有真正的引起人们的注意.不管是开发还是测试都不太关注产品的安全.当然,这也不能怪我们苦B的“民工兄弟” ...
 - 测试类异常Manual close is not allowed over a Spring managed SqlSession
		
在用Spring 和mybatis整合的 写测试类的时候报出解决办法:在全局配置文件 class="org.mybatis.spring.SqlSessionTemplate" ...
 - python+pytest接口自动化(11)-测试函数、测试类/测试方法的封装
		
前言 在python+pytest 接口自动化系列中,我们之前的文章基本都没有将代码进行封装,但实际编写自动化测试脚本中,我们都需要将测试代码进行封装,才能被测试框架识别执行. 例如单个接口的请求代码 ...
 - XCode中的单元测试:编写测试类和方法(内容意译自苹果官方文档)
		
当你在工程中通过测试导航栏添加了一个测试target之后, xcode会在测试导航栏中显示该target所属的测试类和方法. 这一章演示了怎么创建测试类,以及如何编写测试方法. 测试targets, ...
 - JUit——(三)JUnit核心对象(测试、测试类、Suit和Runner)
		
JUnit的核心对象:测试.测试类.测试集(Suite).测试运行器 1. 测试: @Test注释的.公共的.不带有任何参数.并且返回void类型的方法 2. 测试类: 公共的,包含对应类的测试方法的 ...
 - Randoop测试类和方法(用例自动生成)
		
详细使用方法见randoop官网: https://randoop.github.io/randoop/manual/index.html 测试程序之前,先检测下你的Randoop是否配置好: 打开c ...
 
随机推荐
- frames.contentWindow.document   InvalidCastException   转换错误异常。
			
http://bbs.csdn.net/topics/210027068 和 https://bytes.com/topic/c-sharp/answers/248557-threading-pr ...
 - Sql 2008R2  windows身份好用 ,sa身份不好用
			
Sql server2008r2 安装完毕以后 windows身份验证好用,sa身份不好用,解决方法步骤如下: 1.首先用windows身份登录 2.SQL实例右键属性 3.安全性这一项 4.选择wi ...
 - 【SqlServer系列】开启Sqlserver远程访问
			
1 概述 已发布[SqlServer系列]文章如下: [SqlServer系列]SQLSERVER安装教程 [SqlServer系列]数据库三大范式 [SqlServer系列]表单查询 [SqlS ...
 - Java - static的注意点
			
静态函数与静态变量无需生成对象 静态函数只能调用静态变量 装载类的时候执行静态代码块 静态函数中不能使用this /* * For test static * 2014-10-26 */ public ...
 - Sql for Oracle基本操作关键字
			
Sql for Oracle基本操作关键字 +SQL TOP子句 TOP 子句用于规定要返回的记录的数目 SELECT column_name(s) FROM table_name WHERE ROW ...
 - 走进安卓的重灾区----video
			
html5的video已经出来很久了.在ios上使用基本上没什么毛病,但是安卓下就是一个重灾区了,各种体验差.这几天搞了安卓的兼容,简直是要吐血.所以特意总结了一些强势的坑点. 先看一下常用的一些属性 ...
 - (转)Linux下增加交换分区的大小
			
场景:最近在Linux环境安装ELK相关软件时候发现机器特别的卡,所以就查看了Linux机器的内存使用情况,发现是内存和交换分区空间太小了. 对于虚拟机中的内存问题,可以直接通过更改虚拟机的硬件进行解 ...
 - java 线程之concurrent中的常用工具 CyclicBarrier
			
一.CyclicBarrier CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point).在涉及一组固定大小的线程的程序 ...
 - ffmpeg.exe下载
			
下载链接:http://pan.baidu.com/s/1cGTe6y
 - FCKEditor在jsp页面中的配置方法
			
大家在使用博客园或者是在网站上面发表一些东西的时候,往往会发现,输入文字的不是一个简单的文本框,而是一个类似于word的在线编辑环境.这个插件叫FCKEditor,使用这个插件要进行一定程度的配置,下 ...