软件测试技术实验二

Selenium上机实验

实验要求:

1、安装SeleniumIDE插件

2、学会使用SeleniumIDE录制脚本和导出脚本

3、访问http://121.193.130.195:8080/使用学号登录系统(账户名为学号,密码为学号后6位),进入系统后可以看到该同学的git地址。

4、编写Selenium Java WebDriver程序,测试inputgit.csv表格中的学号和git地址的对应关系是否正确。

5、将测试代码提交到github上。

实验步骤:

1、安装SeleniumIDE插件

在火狐浏览器中,打开菜单-附加组件,在获取附加组件中搜索SeleniumIDE,在众多搜索结果当中选择Selenium IDE,图标如图所示:

安装之后,重启火狐浏览器,在工具可以看到SeleniumIDE的按钮,表示安装成功。

2、学会使用SeleniumIDE录制脚本和导出脚本

点击工具,打击SeleniumIDE按钮,启动SeleniumIDE插件,启动界面如图:

base url:指的是你当前录制时的开始连接地址。

Test case:这里就是你的测试用例。

右侧的中间显示的就是全部命令内容

底部就是在运行过程中会出现的结果,异常等显示。

右上角的红色圆,空心的时候表示的正在录制,实心表示录制结束

 

3、访问http://121.193.130.195:8080/使用学号登录系统(账户名为学号,密码为学号后6位),进入系统后可以看到该同学的git地址。

这里使用SeleniumIDE录制访问过程,访问之前打开SeleniumIDE插件,开始录制。

在浏览器中输入网址访问,输入用户名和密码进行登录,SeleniumIDE记录了这一过程:

点击绿色三角按钮,可以进行回放操作。而且可以导出录制脚本。

4、编写Selenium Java WebDriver程序,测试inputgit.csv表格中的学号和git地址的对应关系是否正确。

准备工作:火狐浏览器版本与Selenium Java版本的兼容问题,是实验成功的关键因素。

这里建议:火狐浏览器版本:43.0.1         Selenium Java版本:2.53.0

(火狐浏览器版本在帮助-关于Firefox中可以查看) 

(1)下载Selenium Java 2.53.0版本,并在Eclipse中导入。

下载地址:http://selenium-release.storage.googleapis.com/index.html?path=2.53/。下载之后解压,得到如下目录结构:

然后把上面解压出来的文件拷到新建的project目录下,目录结构如下图:

(2)添加build path,项目目录右键-->Build Path--> config build path-->Java Build Path-->Libraries-->Add JARs。把libs文件夹下的jar包全部添加上,再添加selenium-java-2.53.0.jar和selenium-java-2.53.0-srcs.jar。

添加完之后目录结构如上图,多了引用的库,这里就是上面那一步添加进去的jar包。

(3)明确实验目的,编写代码。

     本次实验,测试inputgit.csv表格中的学号和git地址的对应关系是否正确。我们以网站http://121.193.130.195:8080/中的信息为标准,一一检查表格中每个人的信息是否准确。

     所以,根据实验目的,可以知道我们的主要工作分为三步:

     1、读取inputgit.csv表格中的数据并且存储在变量当中;

    (在读写CSV文件是大家可能到会有这样的纠结:到底是用第三方的jar包,还是自己写个类呢?如果用第三方的jar包,网上的资源有的特别大,可能就是个几百K的程序,却要附带一个和自己差不多大的jar包,得不偿失。如果自己写的话,又很难完美的处理各种异常。不过有一个特别好用的第三方jar包,只有14K,完美的解决了这个问题。下载地址:http://sourceforge.net/projects/javacsv/files/。导入方法与之前一致。)

    2、使用SeleniumIDE自动登录网站查询,将查询结果保存;

    3、比较表格中的数据和网站查询出的数据,检查是否一致。

    代码如下:

 1 package test;
 2 
 3  import java.io.IOException;
 4 import java.nio.charset.Charset;
 5 
 6 import org.openqa.selenium.By;
 7 import org.openqa.selenium.WebDriver;
 8 import org.openqa.selenium.WebElement;
 9 import org.openqa.selenium.firefox.*;
10 import com.csvreader.CsvReader;
11 
12 public class Test {
13     
14 public static void main(String[] args) throws IOException {
15                              
16         //生成CsvReader对象,以,为分隔符,GBK编码方式
17         CsvReader r = new CsvReader("E://学习资料//软件测试//上机实验//实验二//inputgit.csv", ',',Charset.forName("GBK"));
18         //读取表头
19         r.readHeaders();
20         //逐条读取记录,直至读完
21         while (r.readRecord()) {                        
22         //读取一条记录
23         r.readRecord();             
24         //按列名读取这条记录的值
25         String number_csv = r.get("学号");              
26         String name_csv = r.get("姓名");
27         String address_csv = r.get("github地址");
28         String pwd_csv = number_csv.substring(number_csv.length()-6,number_csv.length());
29                  
30         //打开火狐浏览器
31         System.setProperty("webdriver.firefox.bin", "D:/火狐浏览器/firefox.exe"); 
32         WebDriver driver = new FirefoxDriver();
33        //访问给定网址
34        driver.get("http://121.193.130.195:8080/");               
35        driver.manage().window().maximize();
36       //输入用户名
37        WebElement input_name = driver.findElement(By.id("name"));
38        input_name.clear();
39        input_name.sendKeys(number_csv);
40       //输入密码
41        WebElement input_pwd = driver.findElement(By.id("pwd"));
42        input_pwd.clear();
43        input_pwd.sendKeys(pwd_csv);
44       //点击登录按钮
45        WebElement btn = driver.findElement(By.id("submit"));
46        btn.click();
47      //登录成功之后,获得当前页面的用户信息
48        String info_web = driver.findElement(By.xpath("//tbody[@id='table-main']")).getText();
49        String name_web = info_web.substring(info_web.indexOf("名") + 2, info_web.indexOf("学") - 1);
50        String number_web = info_web.substring(info_web.indexOf("号") + 2, info_web.indexOf("G") - 1);
51        String address_web = info_web.substring(info_web.indexOf("址") + 2);
52     //比较查询信息            
53        if(name_csv.equals(name_web)&&number_csv.equals(number_web)&&address_csv.equals(address_web))
54         {
55                 System.out.println("用户信息一致.");
56         }
57       else
58         {
59                 System.out.println(name_web+"的信息不一致.");
60         }
61         driver.close();
62          }
63          r.close();
64               
65 }
66     
67 }

表格中的数据较多,我们以10条数据查询为例,运行结果如下:

 

posted @ 2017-03-24 23:11  ProQianXiao  阅读(575)  评论(0编辑  收藏  举报