selenium IDE录制脚本,可以导出TestNG java脚本,今天跑起来试一下,还挺好用的。
1、首先intellij idea创建项目导入这三个jar包
2、用selenium IDE录制脚本导出java脚本。
3、在intellij idea中创建一个class,把脚本复制进去
TestcaseLogin.java
1 package com.tgb.test; 2 import java.util.concurrent.TimeUnit; 3 import org.testng.annotations.*; 4 import static org.testng.Assert.*; 5 import org.openqa.selenium.*; 6 import org.openqa.selenium.firefox.FirefoxDriver; 7 8 public class TestcaseLogin { 9 private WebDriver driver; 10 private String baseUrl; 11 private boolean acceptNextAlert = true; 12 private StringBuffer verificationErrors = new StringBuffer(); 13 14 @BeforeClass(alwaysRun = true) 15 public void setUp() throws Exception { 16 driver = new FirefoxDriver(); 17 baseUrl = "https://haiyan.51ping.com"; 18 driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 19 } 20 21 @Test 22 public void test11() throws Exception { 23 driver.get(baseUrl); 24 driver.findElement(By.id("username")).clear(); 25 driver.findElement(By.id("username")).sendKeys("alisa.zhao"); 26 driver.findElement(By.id("password")).clear(); 27 driver.findElement(By.id("password")).sendKeys("Ceshi123"); 28 driver.findElement(By.xpath("(//input[@name=‘_eventId_submit‘])[2]")).click(); 30 } 31 32 @AfterClass(alwaysRun = true) 33 public void tearDown() throws Exception { 34 driver.quit(); 35 String verificationErrorString = verificationErrors.toString();//是否有错误信息 36 if (!"".equals(verificationErrorString)) { 37 fail(verificationErrorString);//将错误信息输出 38 } 39 } 40 //下边这三个方法都是selenium ide自动生成的,目前还没发现有什么作用 41 private boolean isElementPresent(By by) { 42 try { 43 driver.findElement(by); 44 return true; 45 } catch (NoSuchElementException e) { 46 return false; 47 } 48 } 49 50 private boolean isAlertPresent() { 51 try { 52 driver.switchTo().alert(); 53 return true; 54 } catch (NoAlertPresentException e) { 55 return false; 56 } 57 } 58 59 private String closeAlertAndGetItsText() { 60 try { 61 Alert alert = driver.switchTo().alert(); 62 String alertText = alert.getText(); 63 if (acceptNextAlert) { 64 alert.accept(); 65 } else { 66 alert.dismiss(); 67 } 68 return alertText; 69 } finally { 70 acceptNextAlert = true; 71 } 72 } 73 }
4、运行TestNG
testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
<suite name="suite1">
<test name="test" verbose="10">//verbose是详细程度,10是最详细
<classes>
<class name="com.tgb.test.TestcaseLogin" />
</classes>
</test>
</suite>
直接运行xml就可以了
5、TestNG的基础
注解 | 描述 |
---|---|
@BeforeSuite | 注解的方法将只运行一次,运行所有测试前此套件中。 |
@AfterSuite | 注解的方法将只运行一次此套件中的所有测试都运行之后。 |
@BeforeClass | 注解的方法将只运行一次先行先试在当前类中的方法调用。 |
@AfterClass | 注解的方法将只运行一次后已经运行在当前类中的所有测试方法。 |
@BeforeTest | 注解的方法将被运行之前的任何测试方法属于内部类的 <test>标签的运行。 |
@AfterTest | 注解的方法将被运行后,所有的测试方法,属于内部类的<test>标签的运行。 |
@BeforeGroups | 组的列表,这种配置方法将之前运行。此方法是保证在运行属于任何这些组第一个测试方法,该方法被调用。 |
@AfterGroups | 组的名单,这种配置方法后,将运行。此方法是保证运行后不久,最后的测试方法,该方法属于任何这些组被调用。 |
@BeforeMethod | 注解的方法将每个测试方法之前运行。 |
@AfterMethod | 被注释的方法将被运行后,每个测试方法。 |
@DataProvider |
标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。
该@Test 方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。 |
@Factory | 作为一个工厂,返回TestNG的测试类的对象将被用于标记的方法。该方法必须返回Object[]。 |
@Listeners | 定义一个测试类的监听器。 |
@Parameters | 介绍如何将参数传递给@Test方法。 |
@Test | 标记一个类或方法作为测试的一部分。 |
原文:http://www.cnblogs.com/dudu234/p/5148650.html