功能测试——Selenium自动化功能测试
实验目的
(1)学习使用了解Selenium自动化功能测试工具,了解Selenium测试工具的测试模式和过程;
(2)掌握使用Selenium录制测试脚本、执行并分析测试脚本。
实验设备
主流PC机一套,要求安装windows操作系统、Selenium最新版本、OFFICE工具;
实验内容
(1)使用Selenium对MercuryTours网站进行功能测试。要求录制预订机票的完整过程,然后执行测试脚本并分析结果。
(2)设置至少三个检验点,观测检测结果。
实验要求
(1)撰写实验报告,主要填写本人测试步骤和自己的实验体会。
(2)提交录制的测试脚本。
(3)提交检测结果。
实验过程
- 录制测试脚本前的准备
在测试前需要先确认网站以及Selenium是否符合测试需求。确认你已经知道如何对应用程序进行测试
例如要测那些功能、操作步骤、输入的数据、预期的结果等。打开Selenium IDE后,选择“在新项目中录制一个新的测试”,输入项目名以及需要测试的网址后,开始进行录制。
录制测试脚本之前,需要完成以下两步:
Mtours航空网站本地服务开启;
浏览器输入http://localhost:8080/Mtours,创建一个用户。
录制测试脚本
根据想要测试的功能模块,对Web应用进行操作,Selenium会录制用户的一系列操作,并将这些操作转换为指令集存储下来。
加强测试脚本
在测试脚本中加入检查点,可以检查网页超级链接、对象属性或是字符串,以验证应用程序的功能是否正确。Selenium提供了三种验证方法,assert、verify以及waitfor,其区别如下:
Assert:失败时,该测试将终止;
Verify:失败时,该测试继续执行,并将错误日志记录在日显示屏;
Waitfor:等待某些条件变为真,一般使用在Ajax应用程序的测试。调试脚本(对测试脚本除错)
在修改过测试脚本之后,需要调试测试脚本,检查脚本是否存在错误,以确保测试脚本能正常且流畅的执行。执行测试脚本
点击执行测试按钮后,Selenium将执行脚本中的指令集,包括用户添加的验证类指令集。
分析测试结果
查看日志输出中的运行结果,分析测试执行的结果,若出现问题,则记录问题,并找出应用程序的问题所在。导出测试用例(选做)
可以尝试将测试脚本导出成代码的形式并运行,如导出成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自动化功能测试相关推荐
- python自动化功能测试_python、selenium自动化功能测试
元素的定位 id定位 find_element_by_id("kw") 注:有些id值动态变化 class_name定位 find_element_by_class_name(&q ...
- 5个月靠体系化自学软件测试“跳进”阿里,从功能测试到自动化...我经历了什么?
各大招聘网站,测试工程师月薪一万以上基本都有一个必备技能,那就是自动化测试.那么自动化测试到底难不难呢?下面我将会将我的经历讲给大家听,希望听完后,大家会有自己的一个判断. 我是谁 不知不觉,入行软件 ...
- python工业互联网应用实战13—基于selenium的功能测试
本章节我们再来说说测试,单元测试和功能测试.单元测试我们在数据验证章节简单提过了,本章我们进一步如何用单元测试来测试view的功能代码:同时,也涉及一下基于 selenium 的功能测试做法.笔者过去 ...
- 不宜使用Selenium自动化的10个测试场景
尽管在很多情况下测试自动化是有意义的,但一些测试场景是不应该使用自动化测试工具的,比如Selenium.WebDriver. 下面有10个示例,来解释为什么自动化在这种情况下使用时没有意义的,我还将为 ...
- python+selenium自动化软件测试
1.1 环境搭建 1.1.1 selenium简介 Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架.它是一款用于运行端到端功能测试的超强工具.您可以使用多个编程语言编写测 ...
- python 自动点击网页上按钮_python selenium自动化(一)点击页面链接测试
需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口跳转,并且是本站内的链接,前往到链接页面之后在通过后退返回到原始页面. 要完成这个需求就必须实现3点: 1. 找 ...
- chrome 控制台信息获取 python_【python+selenium自动化】设置Chrome启动参数
起因:直接用selenium的webdriver启动chrome,会弹出"Chrome正在受到自动软件的控制",并且窗口较小,是因为chrome没有加载任何配置 解决:点进sele ...
- python表单切换_python3 selenium自动化 frame表单嵌套的切换方法
在web自动化测试中,测试工程师经常会碰到frame表单嵌套结构,直接定位会报错,我们需要切换表单后才能成功定位. 我拿QQ邮箱登录来作为例子说下frame怎么切换. qq邮箱页面按F12可以看到以下 ...
- python自动化办公都能做什么菜-python+selenium自动化(一)之环境搭建
一.环境选择 python版本:python3.7(64位)下载地址:https://www.python.org/downloads/ (推荐使用官方下载) selenium版本:selenium3 ...
最新文章
- Linux Terminal 控制终端的使用
- 求1-2+3-4+5......99的所有数的和
- Fiddler抓包使用教程-断点调试
- 设计模式 — 行为型模式 — 访问者模式
- 新发传染病临床案例研究 Emerging Infectious Diseases. Clinical Case Studies
- 【转】添加web引用和添加服务引用有什么区别?
- Linux cp一个文件夹时提示cp: omitting directory `test/'
- Glide-Android下高效加载多媒体文件
- 【Flink】大数据分析常用去重算法分析『HyperLogLog 篇』
- List实现类的特点和性能分析
- jQuery如何退出each循环的?
- Pixel Bender 浅尝
- Flash: 涅磐与重生
- Linux:进入文件夹提示Permission denied错误
- Jenkins高级篇之Pipeline方法篇-Pipeline Basic Steps-6-写文件writeFile和git SCM
- BP神经网络模型---第一篇(M-P模型)
- STM32F4驱动OV2640摄像头
- html6张拼图,拼图6张-好看的6宫格拼图大全-稿定设计
- 文献阅读与写作(一)
- 剑指Offer+第37题+两个链表的第一个公共节点+java
热门文章
- 移动简单网站开发遇到的问题,备忘或者分享
- [转]C#中得到程序当前工作目录和执行目录的一些方法
- linux看电视系统,教你如何在Linux操作系统下观看电视节目
- mysql原生分页语句_mysql原生分页
- mysql数据库事件不执行_如何查看mysql事件是否执行
- c语言我国有13亿人口,计算机二级循环结构课件.ppt
- python播放音乐同步歌词_python终端播放音乐同定制步显示本地或网络歌词
- 合并工具_分享一个SM to HISM合并工具
- VMWare 黑苹果卡在Logo页面
- mysql回退事务使用_MySQL事务处理及字符集和校对顺序