这次上机我们主要使用Selenium进行自动化测试首先我们需要下载selenium-java的依赖项。

若使用maven管理项目,则在.pom文件中加入如下依赖项:

  1. <dependency>
  2. <groupId>org.seleniumhq.selenium</groupId>
  3. <artifactId>selenium-java</artifactId>
  4. <version>2.53.0</version>
  5. </dependency>

也可以手动下载jar包,具体可以上官网下载,在此不再赘述。

下面是我们实验内容:

一、实验目的

  • 安装SeleniumIDE插件
  • 学会使用SeleniumIDE录制脚本和导出脚本
  • 访问http://www.ncfxy.com使用学号登录系统(账户名为学号,密码为学号后6位),进入系统后可以看到该用户的邮箱。
  • 编写Selenium Java WebDriver程序,测试info.csv表格中的学号和邮箱的对应关系是否正确。

二、Java WebDriver代码:

   
  1. package lesson1;
  2.  
  3. import static org.junit.Assert.*;
  4.  
  5. import java.util.concurrent.TimeUnit;
  6.  
  7. import org.junit.*;
  8. import org.openqa.selenium.By;
  9. import org.openqa.selenium.WebDriver;
  10. import org.openqa.selenium.WebElement;
  11. import org.openqa.selenium.firefox.FirefoxDriver;
  12. import org.openqa.selenium.support.ui.ExpectedCondition;
  13. import org.openqa.selenium.support.ui.WebDriverWait;
  14.  
  15. import java.io.File;
  16. import java.io.FileInputStream;
  17. import java.io.IOException;
  18. import java.io.InputStream;
  19.  
  20. import jxl.Cell;
  21. import jxl.CellType;
  22. import jxl.Sheet;
  23. import jxl.Workbook;
  24. import jxl.write.Label;
  25.  
  26. public class ExampleForFireFox {
  27.  
  28. private WebDriver driver;
  29. private String baseUrl;
  30.  
  31. @Before
  32. public void setUp() throws Exception {
  33. driver = new FirefoxDriver();
  34. baseUrl = "http://www.ncfxy.com/";
  35. driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
  36. }
  37.  
  38. @Test
  39. public void Test1() throws Exception {
  40. jxl.Workbook readwb = null;
  41. //构建Workbook对象, 只读Workbook对象
  42. //直接从本地文件创建Workbook
  43. InputStream instream = new FileInputStream("D:/info.xls");
  44.  
  45. readwb = Workbook.getWorkbook(instream);
  46. //System.out.println("jjjjjjj ");
  47. //Sheet的下标是从0开始
  48. //获取第一张Sheet表
  49. Sheet readsheet = readwb.getSheet(0);
  50. //获取Sheet表中所包含的总列数
  51. int rsColumns = readsheet.getColumns();
  52. //获取Sheet表中所包含的总行数
  53. int rsRows = readsheet.getRows();
  54. //获取指定单元格的对象引用
  55. for (int i = 0; i <rsRows; i++)
  56. {
  57. driver.get(baseUrl);
  58. Cell cell = readsheet.getCell(0, i);
  59. String username = cell.getContents();
  60. String password = username.substring(4, 10);
  61. // 通过 id 找到 input 的 DOM
  62. WebElement element = driver.findElement(By.id("name"));
  63. WebElement element1 = driver.findElement(By.id("pwd"));
  64.  
  65. //System.out.println(element.getSize());
  66. // 输入关键字
  67. element.sendKeys(username);
  68. element1.sendKeys(password);
  69.  
  70. // 提交 input 所在的 form
  71. element.submit();
  72.  
  73. //获取得到的邮箱
  74. WebElement element2 = driver.findElement(By.xpath("//td[2]"));
  75.  
  76. String mailByWeb = element2.getText();
  77. String mailByInfo = readsheet.getCell(1,i).getContents();
  78.  
  79. assertEquals(mailByInfo,mailByWeb);
  80.  
  81. //System.out.println(element2.getText());
  82.  
  83. // System.out.println();
  84. }
  85. /* //利用已经创建的Excel工作薄,创建新的可写入的Excel工作薄
  86. jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(
  87. "D:/info.xls"), readwb);
  88. //读取第一张工作表
  89. jxl.write.WritableSheet ws = wwb.getSheet(0);
  90. //获得第一个单元格对象
  91. jxl.write.WritableCell wc = ws.getWritableCell(0, 0);
  92. //判断单元格的类型, 做出相应的转化
  93. if (wc.getType() == CellType.LABEL)
  94. {
  95. Label l = (Label) wc;
  96. l.setString("新姓名");
  97. }
  98. //写入Excel对象
  99. wwb.write();
  100. wwb.close(); */
  101. //关闭读入流
  102. readwb.close();
  103.  
  104. }
  105. }

三、心得

通过本次实验我们学会了如何用Selenium IDE实现简单的自动化测试,其中包括测试的录制,编写及运行,让我们更加深入的了解了测试的方法和测试的重要性。

[软件测试基础2]基于selenium的自动化测试的更多相关文章

  1. 基于Selenium的自动化测试 C#版(1)

    引子 我一直在思考,作为一个架构师,如何简化程序员的工作,减轻运维的压力,减低测试的要求.然后做了很多很多的尝试.最开始的公司培训文档,一键发布工具,Nuget版本管理,VS项目模板,SOA统一服务提 ...

  2. 转载 基于Selenium WebDriver的Web应用自动化测试

    转载原地址:  https://www.ibm.com/developerworks/cn/web/1306_chenlei_webdriver/ 对于 Web 应用,软件测试人员在日常的测试工作中, ...

  3. 使用 Selenium 实现基于 Web 的自动化测试

    (转自http://www.ibm.com/developerworks/cn/web/1209_caimin_seleniumweb/index.html) Selenium 是一个用于 Web 应 ...

  4. 基于selenium+Python3.7+yaml+Robot Framework的UI自动化测试框架

    前端自动化测试框架 项目说明 本框架是一套基于selenium+Python3.7+yaml+Robot Framework而设计的数据驱动UI自动化测试框架,Robot Framework 作为执行 ...

  5. 基于selenium的pyse自动化测试框架

    WebUI automation testing framework based on Selenium 介绍: pyse基于selenium(webdriver)进行了简单的二次封装,比seleni ...

  6. TestNG测试框架在基于Selenium进行的web自动化测试中的应用

    转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ TestNG+Selenium+Ant TestNG这个测试框架可以很好的和基于Selenium的 ...

  7. 基于Selenium+Python的web自动化测试框架

    一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...

  8. 《Selenium 2自动化测试实战 基于Python语言》中发送最新邮件无内容问题的解决方法

    虫师的<Selenium 2自动化测试实战 基于Python语言>是我自动化测试的启蒙书 也是我推荐的自动化测试入门必备书,但是书中有一处明显的错误,会误导很多读者,这处错误就是第8章自动 ...

  9. Selenium 2自动化测试实战

    Selenium 2自动化测试实战 百度网盘 链接:https://pan.baidu.com/s/1aiP3d8Y1QlcHD3fAlEj4sg 提取码:jp8e 复制这段内容后打开百度网盘手机Ap ...

随机推荐

  1. SQLite入门语句之HAVING和DISTINCT

    一.SQLite入门语句之HAVING HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果. WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建 ...

  2. ca 自签名证书 并实现HAProxy https功能

    mkdir /etc/ssl/xip.io [root@ha02 haproxy-]# openssl genrsa - Generating RSA bit long modulus ....... ...

  3. 【Java EE 学习 32 上】【JQuery】【选择器】

    一.JQuery简介 1.JQuery是JavaScript库,封装了很多预定义对象和实用函数. 2.JQury的优势: (1)简洁,其宗旨就是写更少的代码做更多的事. (2)文档声明非常全面:htt ...

  4. UVA 11645 Bits(组合数学)

    从左往右处理,左半部分记为left, 右半部分记为right,若i,i -1均为1, 贡献为ans += (left + 1) + right * (1ll << (i - 1)); 否则 ...

  5. 给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除。

    题目描述: 给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除. 输入: 两个整数n(2<=n<=1000),a(2<=a<=1000) 输出: 一个整数. ...

  6. Web开发基本准则-55实录-缓存策略

    续上篇<Web开发基本准则-55实录-Web访问安全>. Web开发基本准则-55实录-缓存策略 郑昀 创建于2013年2月 郑昀 最后更新于2013年10月26日 提纲: Web访问安全 ...

  7. uboot的编译

    在我拿到开发板以后,uboot都是编译好的,但是我不知道它是如何生成uboot.bin文件的.经过一番摸索.我也会编译uboot了. #cd /home #mkdir study //创建工作目录 * ...

  8. iOS 设置1像素的UIView线

    如果是代码实现,直接 在CGRectMake里把对应的参数设置为: 1.0/[UIScreenmainScreen].scale 即可.         如果是用xib实现,就需要将对应的限制拖一个I ...

  9. 清华学堂 Range

    Descriptioin Let S be a set of n integral points on the x-axis. For each given interval [a, b], you ...

  10. Leetcode Gray Code

    题目的意思就是将十进制转换成格雷码 首先将二进制转换成格雷码 根据此图可以看出二进制的第i和第i+1位异或为格雷码的第i+1位,对于给定的十进制数x,其(x>>1)相当于二进制向右移动一位 ...