精华内容
参与话题
问答
  • package com.example.tests... import java.util.regex.Pattern; import java.util.concurrent.TimeUnit; import org.testng.annotations.*; import static org.testng.Assert.*;...import org.openqa.selenium.*; imp...
    package com.example.tests;
    
    import java.util.regex.Pattern;
    import java.util.concurrent.TimeUnit;
    import org.testng.annotations.*;
    import static org.testng.Assert.*;
    import org.openqa.selenium.*;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.support.ui.Select;
    
    public class 111 {
      private WebDriver driver;
      private String baseUrl;
      private boolean acceptNextAlert = true;
      private StringBuffer verificationErrors = new StringBuffer();
    
      @BeforeClass(alwaysRun = true)
      public void setUp() throws Exception {
        driver = new FirefoxDriver();
        baseUrl = "https://www.katalon.com/";
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
      }
    
      @Test
      public void test111() throws Exception {
        assertTrue(isElementPresent(By.xpath("(.//*[normalize-space(text()) and normalize-space(.)='*'])[1]/following::input[1]")));
      }
    
      @AfterClass(alwaysRun = true)
      public void tearDown() throws Exception {
        driver.quit();
        String verificationErrorString = verificationErrors.toString();
        if (!"".equals(verificationErrorString)) {
          fail(verificationErrorString);
        }
      }
    
      private boolean isElementPresent(By by) {
        try {
          driver.findElement(by);
          return true;
        } catch (NoSuchElementException e) {
          return false;
        }
      }
    
      private boolean isAlertPresent() {
        try {
          driver.switchTo().alert();
          return true;
        } catch (NoAlertPresentException e) {
          return false;
        }
      }
    
      private String closeAlertAndGetItsText() {
        try {
          Alert alert = driver.switchTo().alert();
          String alertText = alert.getText();
          if (acceptNextAlert) {
            alert.accept();
          } else {
            alert.dismiss();
          }
          return alertText;
        } finally {
          acceptNextAlert = true;
        }
      }
    }
    

     

     

    展开全文
  • --> 关键之添加
       <target name="test" depends="compile">
          <echo message="running tests"/>
          <testng classpathref="runpath" outputdir="test-output">
          	 <jvmarg value="-Dfile.encoding=UTF-8"/>
             <xmlfileset dir="./" includes="src/testng.xml"/>
            <!-- <jvmarg value="-ea" /> -->
          </testng>
       </target>


    关键之添加  <jvmarg value="-Dfile.encoding=UTF-8"/> 这一行解决。

    展开全文
  • TestNG结合Selenium Grid

    2011-10-26 15:53:17
    1. testNG并发执行测试用例的方法在配置testNG的test.xml中,通过suit标签的属性可以指定并发执行,例如:&lt;suite name="My suite" parallel="methods" thread-count="5"&gt;...

    引自:http://blog.sina.com.cn/s/blog_44e5fca90100hsud.html

    1. testNG并发执行测试用例的方法
    在配置testNG的test.xml中,通过suit标签的属性可以指定并发执行,例如:
    <suite name="My suite" parallel="methods" thread-count="5">
    指定每一个测试方法使用单独的线程,总线程数为5
    parallel可以为:
      methods : 每个method使用一个线程
      tests :每个<test>标签中的所有方法使用一个线程
      classes : 每个class使用一个线程

     

    2 使用selenium grid
    grid的机制是,启动一个hub,然后启动多个remote control,启动remote control时告知hub的位置,这样这些rc就可以注册到hub上,测试程序与hub通讯,当测试被并发地发给hub时,hub会自动将这些测试命令分发给已经注册的rc,rc接到命令后执行测试。

    到这里D:\opensource\selenium\selenium-grid-1.0.4\doc\website\download.html下个最新版的selenium grid,里面的文档有详细的使用方法,现在简诉如下:

    selenium grid要求安装jdk和ant,其目录下有一build.xml文件,其中定义的主要target如下:
    检查配置:ant sanity-check
    启动hub:ant launch-hub
      其中hub的配置是在grid_configuration.yml文件里,该文件要在classpath的根里
      启动后在http://host:port/console可以看到hub当前的状态
    启动rc(按默认配置):ant run-demo-in-sequence
    启动rc(指定参数):ant -Dport=5555 -Dhost=192.168.1.16 -DhubURL=http://192.168.1.1:4444 launch-remote-control
      其中host和port是rc的地址,hubURL是hub的地址
    正常启动后,可以在http://host:port/console看到hub中当前注册的rc

     

    Grid 只是提供运行脚本的环境,无法决定脚本以什么样的形式去跑(并行的方式,或者多环境的方式)。脚本以什么样的形式跑,由脚本本身和脚本的runner (一般用junit或者TestNG)的配置所决定.

    并行和多环境的是怎么实现的。

     
    第 一,并行。并行很简单。。脚本就是普通的脚本。然后如果你的runner支持并行运行的话。你就配置成并行。那运行起来就是并行的。。目前junit本身 不支持并行,一般都是用TestNG. 只要让TestNG 并行的运行测试,无论你的测试环境是由一个grid拖几个rc组成,还是 单一一个rc组成。。实际上 运行起来 测试就是并行的,唯一的区别是。如果用了grid的话,grid会把并发数量平均分配到不同的rc上去,然后每个rc会启动一个浏览器运行测试。而没有用 grid情况就是同一个rc直接跑多个,就是一个rc直接打开多个浏览器窗口运行多个测试。

     
    第 二,多环境。 说多环境,这里也要澄清一下。 不是说给一个普通的测试脚本,丢给grid就可以自动实现多环境同时测试了。那是完全错误的。。这里需要几点。1. 一个普通脚本能测试一个某一种环境。所以如果你要测试多个环境就需要多个脚本。而这些脚本的区别仅在于setup的时候定义 DefaultSelenium("localhost",4444,"*firefox",Url); 这里。 因此两个测试方法也可以到同一个文件里面。写两个不同的方法,不同的定义DefaultSelenium部分,但调用同样的测试步骤。(就是 selenium.open...开始到selenium.stop...). 这样一个文件下就算包含测试两个不同环境的测试方法了。
    2. 让这两个测试方法,并行运行。。那又是testng的事情了。配置testng的suite。不细说。可以查看testng的文档。
    3. grid配置的测试的rc环境,里面需要有刚才两个测试方法所需要的环境。
     
    import static com.thoughtworks.selenium.grid.tools.ThreadSafeSeleniumSessionStorage.closeSeleniumSession;
    import static com.thoughtworks.selenium.grid.tools.ThreadSafeSeleniumSessionStorage.session;
    import static com.thoughtworks.selenium.grid.tools.ThreadSafeSeleniumSessionStorage.startSeleniumSession;
    import org.testng.annotations.AfterMethod;
    import org.testng.annotations.BeforeMethod;
    import org.testng.annotations.Parameters;
    import org.testng.annotations.Test;
    import com.thoughtworks.selenium.Selenium;

    public class Sample {
     private Selenium selenium;
     
        @BeforeMethod
        @Parameters({"seleniumHost", "seleniumPort", "browser", "webSite"})
        protected void startSession(String seleniumHost, int seleniumPort, String browser, String webSite) throws Exception {
            startSeleniumSession(seleniumHost, seleniumPort, browser, webSite);
            selenium = session();
            selenium.setTimeout("120000");
        }
        @AfterMethod
        protected void closeSession() throws Exception {
            closeSeleniumSession();
        }
     
     @Test
     public void test1() {
      selenium.open("/");
      selenium.type("q", "test1");
      selenium.click("btnG");
      selenium.waitForPageToLoad("30000");
     }
     
     【略】
    }
    展开全文
  • testNG+selenium相关jar包

    2016-11-22 11:01:46
    selenium集成testNG框架所涉及的jar包
  • Selenium

    千次阅读 多人点赞 2018-02-26 18:07:28
    Selenium     1、Python selenium —— 一定要会用selenium的等待,三种等待方式解读 2、专栏:Python Selenium自动化测试详解 3、通过selenium启动firefox时,启动插件和证书 4、判断元素是否显示、被使用、...
    展开全文
  • 在本教程中,我们将演示如何使用@Test...TestNG 6.8.7 Selenium 2.39.0 Maven 3 我们使用Selenium库自动化浏览器来访问网站。创建一个用于测试的Maven项目:TestngSelenium 。 1. 项目依赖文件配置 获取TestNG和...
  • testng+selenium 环境准备

    2020-06-23 10:42:53
    testng 下载步骤 Eclipse->help->install new software->search with 'testng',选中第一个,然后就开始下载吧, Note:由于大概两年前我装过第二个 也就是 beust 域名下的版本 testng,最近企图再重拾 ...
  • Selenium TestNG

    2015-04-09 11:58:46
    Eclipse安装TestNG 第1步:启动Eclipse,选择“Install New Software”。 第2步:输入网址为“http://beust.com/eclipse”,然后单击“Add”。 第3步:打开添加存储库对话框输入名称为“TestNG”,然后点击...
  • 1、在工程根目录下添加 build_TestNG-xslt.xml 2、新建lib目录,添加xml文件里的jar包 3、新建res目录,添加testng-results.xsl 文件(build插件美化报包需要) testng.xml文件也放置在根目录 <f
  • TestNG + Selenium – Load Testing Example Posted on January 4, 2014 By mkyong In this tutorial, we will show you how to use @Test attributes ...
  • 1. testNG并发执行测试用例的方法在配置testNG的test.xml中,通过suit标签的属性可以指定并发执行,例如:指定每一个测试方法使用单独的线程,总线程数为5parallel可以为: methods : 每个method使用一个线程 tests:...
  • 在本教程中,我们将向您展示如何使用@Test属性invocationCount和threadPoolSize在网站上执行负载测试或压力测试。 使用的工具 : 测试NG 6.8.7 ... 获取TestNGSelenium库。 pom.xml &...
  • 什么是数据驱动相同的...使用testNG进行数据驱动 使用testNG+csv数据驱动 使用testNG+apachePOI+excel文件数据驱动 使用mysql数据驱动 TestNG数据驱动import org.junit.Assert; import org.openqa.sel
  • TestNG+Selenium实现简单的Web前端测试

    千次阅读 2018-08-06 17:07:24
    Selenium应该是目前前端测试最主流的测试工具吧,支持主流浏览器如Firefox、Chrome、IE等,无论你熟悉Python还是Java,都可以方便的使用Selenium提供的丰富的测试套件,还有其它很多基于Selenium二次封装开发的测试...
  • package test; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement;...import org.openqa.selenium.firefox.Fire
  • 基于maven+testngselenium测试框架搭建

    千次阅读 2016-08-07 11:45:00
    基于maven+testngselenium测试框架搭建一、 简介 二、 选型原因 三、 具体创建 1. 创建工程 2. 添加依赖 3. 设置目录结构 4. 具体代码示例 5. 简单的测试 四、 问题及解决方法 一、 简介 最近项目组的...
  • 准备:TestNGSelenium、Maven 1、在 pom.xml 文件中增加配置项。 ################## <!-- https://mvnrepository.com/artifact/org.testng/testng --> <dependency> <groupId>org.testng&...
  • IDEA+Maven+TestNG+Selenium环境搭建

    千次阅读 2017-06-16 17:54:27
    第一 安装java环境。 1. 下载并安装Jdk1.7或Jdk1.8 http://www.oracle.com/technetwork/java/javase/downloads/index.html ...2. 新建一个环境变
  • 新加入一家公司,接手一个Selenium自动化测试的Web项目,使用testNG单元测试,Selenium+testNG进行功能测试,功能测试需要读取excel文件获取WebDriver类型(浏览器不同driver也不同嘛)、案例数据等等,采用maven...
  • 1、引言  软件测试是关系到软件开发和维护成本的重要环节。任何软件产品在正式发布之前都必须经过严格的测试。随着计算机技术的迅速发展,软件的结构越来越复杂,同业竞争越来越激烈。为了保证软件产品的高度可靠性...
  • 1.下载 jxl.jar 复制到测试项目的 lib 下,在项目中新建数据驱动类
  • 1、引言  软件测试是关系到软件开发和维护成本的重要环节。任何软件产品在正式发布之前都必须经过严格的测试。随着计算机技术的迅速发展,软件的结构越来越复杂,同业竞争越来越激烈。为了保证软件产品的高度可靠...

空空如也

1 2 3 4 5 ... 20
收藏数 85,024
精华内容 34,009
关键字:

testng