• 软件测试(五)——上机使用Selenium进行Web测试


    1. 安装Selenium插件

    首先下载最新版火狐浏览器。在工具栏“附加组件”中,搜索“Selenium IDE”,然后安装

    2.使用 Selenium IDE录制并导出脚本

    安装好插件后,点击工具栏中的。然后通过文件--》new test case创建新的测试用例。

    a.录制脚本:

    接下来进行如下流程的操作:

    1)点击右侧的红色按钮开始录制脚本。

    2)在火狐浏览器中输入网址http://www.ncfxy.com/,访问该网址

    3)在网页的用户名和密码中分别填写正确的信息,并点击提交。

    4)在邮箱的位置点击右键,如图所示找到对应的assertText

    5)点击IDE中的红色按钮,完成录制

    图示流程:

    1)

    2)3)

    4)

    5)

    完成录制之后,可以通过点击绿色的开始按钮进行测试。

    b.导出脚本


    首先,点击Optinons-->Options-->General,勾选Enable experimental features

    然后,通过Options-->Format选择要导出成的相应格式。

    这里为了后面的Java使用,选择Java / JUnit 4/ WebDriver

    然后会得到生成的Java文件

    3.编写Selenium Java WebDriver程序

    创建工程,并且引入如下的几种包

    编写java文件
      1 package com.Selenium.Lab2;
      2 
      3 import java.io.FileNotFoundException;
      4 import java.io.IOException;
      5 import java.nio.charset.Charset;
      6 import java.util.Arrays;
      7 import java.util.Collection;
      8 import java.util.concurrent.TimeUnit;
      9 
     10 import org.junit.*;
     11 import org.junit.runner.RunWith;
     12 import org.junit.runners.Parameterized;
     13 import org.junit.runners.Parameterized.Parameters;
     14 
     15 import static org.junit.Assert.*;
     16 
     17 import org.openqa.selenium.*;
     18 import org.openqa.selenium.firefox.FirefoxDriver;
     19 
     20 import com.csvreader.CsvReader;
     21 
     22 
     23 @RunWith(Parameterized.class)
     24 public class WebDriverTest {
     25   private WebDriver driver;
     26   private boolean acceptNextAlert = true;
     27   private StringBuffer verificationErrors = new StringBuffer();
     28   private String id = null;
     29   private String email = null;
     30 
     31   public WebDriverTest(String id, String email){
     32       this.id= id;
     33       this.email = email;
     34   }
     35   
     36   @Before
     37   public void setUp() throws Exception {
     38     System.setProperty("webdriver.firefox.bin", "D:/installed_softwares/FireFox/firefox.exe");// 如果firefox没有装在c盘,这里需要指明安装位置
     39     driver = new FirefoxDriver();
     40     driver.get("http://www.ncfxy.com/");
     41     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
     42   }
     43 
     44   @Parameters
     45   public static Collection<Object[]> getData() throws IOException{
     46       //使用参数化测试。每从csv文件中读取出一行创建一个object数组
     47       Object[][] obj = new Object[109][];
     48       CsvReader r= new CsvReader("E://本科课程学习//软件测试//Lab2//info.csv",',',Charset.forName("GBK"));
     49       int count = 0;
     50       while(r.readRecord()){
     51           obj[count] = new Object[]{r.get(0), r.get(1)};
     52           count++;
     53       }
     54       return Arrays.asList(obj);
     55   }
     56   
     57   @Test
     58   public void testCase() throws Exception {
     59     driver.findElement(By.id("name")).clear();
     60     driver.findElement(By.id("name")).sendKeys(this.id);
     61     driver.findElement(By.id("pwd")).clear();
     62     driver.findElement(By.id("pwd")).sendKeys(this.id.substring(4));
     63     driver.findElement(By.id("submit")).click();
     64     assertEquals(this.email, driver.findElement(By.xpath("//tbody[@id='table-main']/tr/td[2]")).getText());
     65   }
     66 
     67   @After
     68   public void tearDown() throws Exception {
     69     driver.close();
     70     String verificationErrorString = verificationErrors.toString();
     71     if (!"".equals(verificationErrorString)) {
     72       fail(verificationErrorString);
     73     }
     74   }
     75 
     76 //  private boolean isElementPresent(By by) {
     77 //    try {
     78 //      driver.findElement(by);
     79 //      return true;
     80 //    } catch (NoSuchElementException e) {
     81 //      return false;
     82 //    }
     83 //  }
     84 //
     85 //  private boolean isAlertPresent() {
     86 //    try {
     87 //      driver.switchTo().alert();
     88 //      return true;
     89 //    } catch (NoAlertPresentException e) {
     90 //      return false;
     91 //    }
     92 //  }
     93 //
     94 //  private String closeAlertAndGetItsText() {
     95 //    try {
     96 //      Alert alert = driver.switchTo().alert();
     97 //      String alertText = alert.getText();
     98 //      if (acceptNextAlert) {
     99 //        alert.accept();
    100 //      } else {
    101 //        alert.dismiss();
    102 //      }
    103 //      return alertText;
    104 //    } finally {
    105 //      acceptNextAlert = true;
    106 //    }
    107 //  }
    108 }
    WebDriverTest

    进行测试,得到结果(run109,pass109)

  • 相关阅读:
    Java String 乱码
    HBase非原理性浅析
    git cherry-pick
    数据结构之队列
    数据结构之栈
    算法之简单排序
    数据结构之数组
    数据结构简介
    Java类型信息
    基数排序
  • 原文地址:https://www.cnblogs.com/sywang/p/5392190.html
Copyright © 2020-2023  润新知