zoukankan      html  css  js  c++  java
  • Software Testing -- LAB02-Selenium上机实验

    Selenium上机实验

    博客地址:http://www.cnblogs.com/--CYH--/p/6612232.html

    github:https://github.com/JohnsonGreen/winfile/tree/master/WorkSpace/EclipseJavaWeb/SeleniumTest/src/net/chenyuhong/selenium

    1.Selenium 安装与使用

    . 1) 完成selenium在firefox上的安装之后打开selenium,点击录制,并在浏览器输入框中输入“天津大学”,

     

    2)录制完毕后,添加测试用例:浏览器输入框右键-Show All Available Commands-选择assertTitle 天津大学_百度搜索,便可在selenium中添加命令

     

    3) 然后调节Play speed,点击Play entire test suite,运行所有命令

     

    4) 全部运行成功

     

    5)导出Java Junit测试代码

     

    2.导出脚本的使用

    1)将以下两个jar包加入项目测试目录

     2)为了兼容性,选取firefox的40版本,在测试文件中选择Converage as Junit,弹出firefox后,测试成功:

     

    3. 测试inputgit.csv表格中的学号和git地址的对应关系是否正确

       1)按行读取文件,并分离其中的学号和github地址,保存在Object二维数组中,以用作多用例测试:

       2)将学号和密码自动填入输入框,并且查找学号和github对应的地址

       3)测试结果: 一共117个测试用例

     

     4.源代码

      1) inputgit.csv文件 

    学号,姓名,github地址
    3014219080,陈煜弘,http://github.com/JohnsonGreen

     2)Csv.java:用于读取csv文件

     1 package net.chenyuhong.selenium;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.File;
     5 import java.io.FileReader;
     6 import java.io.IOException;
     7 import java.util.ArrayList;
     8 import java.util.List;
     9 
    10 /**   
    11  * @Title: Csv.java 
    12  * @Package net.chenyuhong.selenium 
    13  * @Description: 
    14  * @author cyh tjuchenheng@163.com  
    15  * @date 2017-3-24 下午2:17:15 
    16  * @version V1.0   
    17  */
    18 public class Csv {
    19   
    20     /**
    21      * 导入
    22      * 
    23      * @param file csv文件(路径+文件)
    24      * @return
    25      */
    26     public static List<Student> importCsv(File file){
    27         List<Student> dataList=new ArrayList<Student>();
    28         
    29         BufferedReader br=null;
    30         try { 
    31             br = new BufferedReader(new FileReader(file));
    32             String line = ""; 
    33             br.readLine(); 
    34             
    35             while ((line = br.readLine()) != null) { 
    36                 
    37                  String[] result = line.split("\,");
    38                  Student student= new Student();
    39                  student.setStunum(result[0]);
    40                  student.setGithub(result[2]);
    41                  for (String s : result) {
    42                      System.out.println(s);
    43                  }
    44                  
    45                 dataList.add(student);
    46             }
    47         }catch (Exception e) {
    48         }finally{
    49             if(br!=null){
    50                 try {
    51                     br.close();
    52                     br=null;
    53                 } catch (IOException e) {
    54                     e.printStackTrace();
    55                 }
    56             }
    57         }
    58  
    59         return dataList;
    60     }
    61     
    62     public static Object[][] getStu(){
    63             String path = "F:\TESTFILE\inputgit.csv";
    64             File file = new File(path);  
    65             
    66             
    67              List<Student> stuList = Csv.importCsv(file); 
    68             Object[][] aObjects = new Object[stuList.size()][2];
    69             int i = 0;
    70             for(Student stu : stuList){
    71                 aObjects[i][0] = stu.getStunum();
    72                 aObjects[i][1] = stu.getGithub();
    73                 i++;
    74             }
    75             
    76             return aObjects;         //读取文件    
    77     }
    78 
    79 }

     3)Student.java:用于保存学生的学号以及github账号信息

        

    package net.chenyuhong.selenium;
    /**   
     * @Title: Students.java 
     * @Package net.chenyuhong.selenium 
     * @Description: 
     * @author cyh tjuchenheng@163.com  
     * @date 2017-3-24 下午2:29:13 
     * @version V1.0   
     */
    public class Student {
    
        private String stunum;
        private String github;
        public String getStunum() {
            return stunum;
        }
        public void setStunum(String stunum) {
            this.stunum = stunum;
        }
        public String getGithub() {
            return github;
        }
        public void setGithub(String github) {
            this.github = github;
        }
        
    }

    4)Selenium测试代码

    package net.chenyuhong.selenium;
    
    
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.concurrent.TimeUnit;
    import org.junit.*;
    import org.junit.runner.RunWith;
    import org.junit.runners.Parameterized;
    import org.junit.runners.Parameterized.Parameters;
    import static org.junit.Assert.*;
    import org.openqa.selenium.*;
    import org.openqa.selenium.firefox.FirefoxDriver;
    
    
    @RunWith(Parameterized.class)
    public class TestSelenium {
      private WebDriver driver;
      private String baseUrl;
      private StringBuffer verificationErrors = new StringBuffer();
      
      private String stunum;
      private String github;
      
    
      
      public TestSelenium(String stunum,String github){
            this.stunum = stunum;
            this.github = github;
      }
        
      
        @Parameters
        public static Collection<Object[]> getData(){
            return Arrays.asList(Csv.getStu());         //获取所有学生的学号和github信息
        }
      
    
      @Before
      public void setUp() throws Exception {
        System.setProperty ( "webdriver.firefox.bin" , "F:/Surfing/Firefox/firefox.exe" ); //firefox的安装路径
        driver = new FirefoxDriver();
        baseUrl = "http://121.193.130.195:8080/";
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        
      }
      
      
      @Test
      public void testSelenium() throws Exception {
          
              driver.get(baseUrl);                        
              String str = this.stunum;
              driver.findElement(By.id("name")).sendKeys(this.stunum); 
              driver.findElement(By.id("pwd")).sendKeys(str.substring(str.length()-6)); 
              driver.findElement(By.id("submit")).click();
              String stun = driver.findElement(By.xpath("//tbody/tr[2]/td[2]")).getText();    //利用xpath找到网页中的学号
              String github = driver.findElement(By.xpath("//tbody/tr[3]/td[2]")).getText();  
              System.out.println(stun);
              System.out.println(github);
              assertEquals(this.stunum,stun);                  //判断csv中的学号和网页中的学号是否相等
              assertEquals(this.github, github);
                   
      }
    
      @After
      public void tearDown() throws Exception {
        driver.quit();
        String verificationErrorString = verificationErrors.toString();
        if (!"".equals(verificationErrorString)) {
          fail(verificationErrorString);
        }
      }
    
    }

      

                                                           

  • 相关阅读:
    解决跨域POST登录中IE不能正常工作的bug
    设置一个严格的SESSION过期时间
    一次不成功的脚本Hack[捕鱼达人游戏]
    页面高度定位
    简单实用的跨域表单POST提交
    最简单的记录程序运行时间的方法:[记录PHP程序运行消耗时间]
    火狐下的GreaseMonkey和Chrome下的tampermonkey使用手记
    console.log
    记录最近工作使用javascript对select[option]的操作
    ubuntu16.04让内核编译一次过的方法
  • 原文地址:https://www.cnblogs.com/--CYH--/p/6612232.html
Copyright © 2011-2022 走看看