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 @Test22 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
//verbose是详细程度,10是最详细
直接运行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 | 标记一个类或方法作为测试的一部分。 |