实验目的

(1)学习使用了解Selenium自动化功能测试工具,了解Selenium测试工具的测试模式和过程;
(2)掌握使用Selenium录制测试脚本、执行并分析测试脚本。

实验设备

主流PC机一套,要求安装windows操作系统、Selenium最新版本、OFFICE工具;

实验内容

(1)使用Selenium对MercuryTours网站进行功能测试。要求录制预订机票的完整过程,然后执行测试脚本并分析结果。
(2)设置至少三个检验点,观测检测结果。

实验要求

(1)撰写实验报告,主要填写本人测试步骤和自己的实验体会。
(2)提交录制的测试脚本。
(3)提交检测结果。

实验过程

  1. 录制测试脚本前的准备
    在测试前需要先确认网站以及Selenium是否符合测试需求。确认你已经知道如何对应用程序进行测试

例如要测那些功能、操作步骤、输入的数据、预期的结果等。打开Selenium IDE后,选择“在新项目中录制一个新的测试”,输入项目名以及需要测试的网址后,开始进行录制。

录制测试脚本之前,需要完成以下两步:
Mtours航空网站本地服务开启;

浏览器输入http://localhost:8080/Mtours,创建一个用户。

  1. 录制测试脚本
    根据想要测试的功能模块,对Web应用进行操作,Selenium会录制用户的一系列操作,并将这些操作转换为指令集存储下来。

  2. 加强测试脚本
    在测试脚本中加入检查点,可以检查网页超级链接、对象属性或是字符串,以验证应用程序的功能是否正确。Selenium提供了三种验证方法,assert、verify以及waitfor,其区别如下:
    Assert:失败时,该测试将终止;
    Verify:失败时,该测试继续执行,并将错误日志记录在日显示屏;
    Waitfor:等待某些条件变为真,一般使用在Ajax应用程序的测试。

  3. 调试脚本(对测试脚本除错)
    在修改过测试脚本之后,需要调试测试脚本,检查脚本是否存在错误,以确保测试脚本能正常且流畅的执行。

  4. 执行测试脚本
    点击执行测试按钮后,Selenium将执行脚本中的指令集,包括用户添加的验证类指令集。

  5. 分析测试结果
    查看日志输出中的运行结果,分析测试执行的结果,若出现问题,则记录问题,并找出应用程序的问题所在。

  6. 导出测试用例(选做)
    可以尝试将测试脚本导出成代码的形式并运行,如导出成JUnit。

// Generated by Selenium IDE
import org.junit.Test;
import org.junit.Before;
import org.junit.After;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.core.IsNot.not;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Alert;
import org.openqa.selenium.Keys;
import java.util.*;
import java.net.MalformedURLException;
import java.net.URL;
public class LoginTest {private WebDriver driver;private Map<String, Object> vars;JavascriptExecutor js;@Beforepublic void setUp() {driver = new ChromeDriver();js = (JavascriptExecutor) driver;vars = new HashMap<String, Object>();}@Afterpublic void tearDown() {driver.quit();}@Testpublic void login() {driver.get("http://localhost:8080/mtours/servlet/WelcomeServlet");driver.findElement(By.name("userName")).click();driver.findElement(By.name("userName")).sendKeys("STZG");driver.findElement(By.name("password")).click();driver.findElement(By.name("password")).sendKeys("123456");driver.findElement(By.name("login")).click();}
}

参考文章

功能测试——Selenium自动化功能测试相关推荐

  1. python自动化功能测试_python、selenium自动化功能测试

    元素的定位 id定位 find_element_by_id("kw") 注:有些id值动态变化 class_name定位 find_element_by_class_name(&q ...

  2. 5个月靠体系化自学软件测试“跳进”阿里,从功能测试到自动化...我经历了什么?

    各大招聘网站,测试工程师月薪一万以上基本都有一个必备技能,那就是自动化测试.那么自动化测试到底难不难呢?下面我将会将我的经历讲给大家听,希望听完后,大家会有自己的一个判断. 我是谁 不知不觉,入行软件 ...

  3. python工业互联网应用实战13—基于selenium的功能测试

    本章节我们再来说说测试,单元测试和功能测试.单元测试我们在数据验证章节简单提过了,本章我们进一步如何用单元测试来测试view的功能代码:同时,也涉及一下基于 selenium 的功能测试做法.笔者过去 ...

  4. 不宜使用Selenium自动化的10个测试场景

    尽管在很多情况下测试自动化是有意义的,但一些测试场景是不应该使用自动化测试工具的,比如Selenium.WebDriver. 下面有10个示例,来解释为什么自动化在这种情况下使用时没有意义的,我还将为 ...

  5. python+selenium自动化软件测试

    1.1 环境搭建 1.1.1 selenium简介 Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架.它是一款用于运行端到端功能测试的超强工具.您可以使用多个编程语言编写测 ...

  6. python 自动点击网页上按钮_python selenium自动化(一)点击页面链接测试

    需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口跳转,并且是本站内的链接,前往到链接页面之后在通过后退返回到原始页面. 要完成这个需求就必须实现3点: 1. 找 ...

  7. chrome 控制台信息获取 python_【python+selenium自动化】设置Chrome启动参数

    起因:直接用selenium的webdriver启动chrome,会弹出"Chrome正在受到自动软件的控制",并且窗口较小,是因为chrome没有加载任何配置 解决:点进sele ...

  8. python表单切换_python3 selenium自动化 frame表单嵌套的切换方法

    在web自动化测试中,测试工程师经常会碰到frame表单嵌套结构,直接定位会报错,我们需要切换表单后才能成功定位. 我拿QQ邮箱登录来作为例子说下frame怎么切换. qq邮箱页面按F12可以看到以下 ...

  9. python自动化办公都能做什么菜-python+selenium自动化(一)之环境搭建

    一.环境选择 python版本:python3.7(64位)下载地址:https://www.python.org/downloads/ (推荐使用官方下载) selenium版本:selenium3 ...

最新文章

  1. Linux Terminal 控制终端的使用
  2. 求1-2+3-4+5......99的所有数的和
  3. Fiddler抓包使用教程-断点调试
  4. 设计模式 — 行为型模式 — 访问者模式
  5. 新发传染病临床案例研究 Emerging Infectious Diseases. Clinical Case Studies
  6. 【转】添加web引用和添加服务引用有什么区别?
  7. Linux cp一个文件夹时提示cp: omitting directory `test/'
  8. Glide-Android下高效加载多媒体文件
  9. 【Flink】大数据分析常用去重算法分析『HyperLogLog 篇』
  10. List实现类的特点和性能分析
  11. jQuery如何退出each循环的?
  12. Pixel Bender 浅尝
  13. Flash: 涅磐与重生
  14. Linux:进入文件夹提示Permission denied错误
  15. Jenkins高级篇之Pipeline方法篇-Pipeline Basic Steps-6-写文件writeFile和git SCM
  16. BP神经网络模型---第一篇(M-P模型)
  17. STM32F4驱动OV2640摄像头
  18. html6张拼图,拼图6张-好看的6宫格拼图大全-稿定设计
  19. 文献阅读与写作(一)
  20. 剑指Offer+第37题+两个链表的第一个公共节点+java

热门文章

  1. 移动简单网站开发遇到的问题,备忘或者分享
  2. [转]C#中得到程序当前工作目录和执行目录的一些方法
  3. linux看电视系统,教你如何在Linux操作系统下观看电视节目
  4. mysql原生分页语句_mysql原生分页
  5. mysql数据库事件不执行_如何查看mysql事件是否执行
  6. c语言我国有13亿人口,计算机二级循环结构课件.ppt
  7. python播放音乐同步歌词_python终端播放音乐同定制步显示本地或网络歌词
  8. 合并工具_分享一个SM to HISM合并工具
  9. VMWare 黑苹果卡在Logo页面
  10. mysql回退事务使用_MySQL事务处理及字符集和校对顺序