seleniu功能测试
一、前言(课设目的及内容)
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本。
1.1 测试目的
(1) 使学生能掌握网站功能测试的基本思路和方法,学会使用自动化测试工具Selenium进行功能测试;
(2) 培养学生分析、解决问题的能力;
(3) 提高学生的创新思维能力与动手能力;
(4) 提高学生的科技论文写作能力。
1.2 测试内容
Selenium进行功能测试的测试流程的五个步骤:
1.制定测试计划
自动测试的测试计划是根据被测项目的具体需求,以及所使用的测试工具而制定的,完全用于指导测试全工程。
2.创建测试脚本
当测试人员浏览站点或在应用程序上操作的时候,Selenium的自动录制机制能够将测试人员的每一个操作步骤及被操作的对象记录下来,自动生成测试脚本语句。
3.增强测试脚本的功能
录制脚本只是为了实现创建或者设计脚本的第一步,基本的脚本录制完毕后,测试人员可以根据需要增加一些扩展功能,Selenium允许测试人员通过在脚本中增加或更改测试步骤来修正或自定义测试流程。
4.运行测试
Selenium从脚本的第一行开始执行语句,运行过程中会对设置的检查点进行验证,用实际数据代替参数值,并给出相应的输出结构信息。测试过程中测试人员还可以调试自己的脚本,直到脚本完全符合要求。
5.分析测试
运行结束后系统会自动生成一份详细完整的测试结果报告。
二、测试计划及测试需求
2.1 测试原理分析
通过编写模仿用户操作的Selenium测试脚本,可以从终端用户的角度来测试应用程序。通过在不同浏览器中运行测试,更容易发现浏览器的不兼容性。Selenium的核心,也称browser bot,是用JavaScript编写的。这使得测试脚本可以在受支持的浏览器中运行。browser bot负责执行从测试脚本接收到的命令,测试脚本要么是用HTML的表布局编写的,要么是使用一种受支持的编程语言编写的
Selenium IDE:一个Firefox插件,可以录制用户的基本操作,生成测试用例。随后可以运行这些测试用例在浏览器里回放,可将测试用例转换为其他语言的自动化脚本。
Selenium Remote Control (RC) :支持多种平台(Windows,Linux,Solaris)和多种浏览器(IE,Firefox,Opera,Safari),可以用多种语言(Java,Ruby,Python,Perl,PHP,C#)编写测试用例。
Selenium Grid :允许Selenium-RC针对规模庞大的测试案例集或者需要在不同环境中运行的测试案例集进行扩展。
能把Selenium RC脚本和JUnit单元测试结合起来,既能涵盖功能测试,又能涵盖数据或后台Java类测试,从而构成一个完整的Web应用测试解决方案。
2.2测试流程图
根据测试原理的分析以及selenium测试的基本步骤可以设计如图2-1的测试流程图。
·2.3 测试计划设计
根据测试原理分析与测试思想设计,设计如图2-2所示的测试过程计划流程图。
2.4 测试需求分析
对于一个网站系统,其链接的正确性和各个功能模块的功能实现的准确性是其测试的关键性环节。同时在最短的时间内开发出需求分析中的网站系统的软件产品,以最快的速度能先于其他竞争对手占领软件市场,从而获取最大的利益,所以测试速度也是至关重要的。
传统的软件测试是靠人进行手工测试,也就是现在各个公司的主流方法,我们称之为Manual test。测试部门每天都要计算在某个项目上Charge多少个人。这样的测试耗费时间、人力、物力以及成本。自动化测试的目的就是尽可能的减少在测试上的人力和财力的开销,以最便捷省时省事的方法完成同样的任务。
因此以Selenium自动化测试工具对网站的链接正确性检查和各个功能模块的功能实现的准确性测试能够在满足测试需求的前提下加快测试进度。
2.5 测试环境搭建
操作系统:Windows XP
语言:中文
浏览器:谷歌
网络:宽带连接
网站:http://localhost:8080/sct2_war_exploded/
软件:Selenium
其他软件需求:Microsoft Visio2007和Microsoft Word2003
三、测试用例的设计
3.1 登录与退出测试用例
(1). 登录测试用例设计如表3-1所示:
表3-1 登陆测试用例
前置条件 |
输入数据 |
预期结果 |
实际结果 |
输入用户名: |
Admin |
登陆成功 |
登陆成功 |
输入密码: |
123456 |
(2). 退出测试用例如表3-2所示:
表3-2 退出测试用例
前置条件 |
输入数据 |
预期结果 |
实际结果 |
已登录 |
点击退出链接 |
退出并进入登录界面 |
退出并进入登录界面 |
3.2 写信的测试用例
(1). 修改的测试用例如表3-3所示:
表3-3 写信的测试用例
前置条件 |
输入数据 |
预期结果 |
实际结果 |
进入管理页面 |
点击所要修改的课程的修改按钮 |
进入修改页面 |
进入修改页面 |
进入修改页面 |
输入修改信息 |
输出框出现输入的信息 |
输出框出现输入的信息 |
输入信息 |
点击提交按钮 |
提交成功,返回管理页面 |
提交成功,返回管理页面 |
(2). 删除的测试用例如表3-4所示:
表3-4 发送信件的测试用例
前置条件 |
输入数据 |
预期结果 |
实际结果 |
进入管理页面 |
点击所要删除的学生的删除按钮 |
学生删除,管理页面刷新 |
学生删除,管理页面刷新 |
四、测试过程
4.1开始录制脚本:
点击打开谷歌,打开selenium ide 创建项目;
我们这个实验是利用selenium来验证网页修改删除功能,点击Record来录制一个脚本:
点击“开始录制”后进入主页:
然后进选择管理员登录,如下图所示:
输入用户名和密码后,进入课程管理页面:
点击修改进入修改页面
提交修改后的信息
进入学生管理界面删除:
删除张三:
4.2 回放录制脚本:
录制完成后,点击按钮,由于没有加入检查点,故而结果都是Done,出现如下图:
4.3 加入检查点
下面加入检查点,可以在登陆页面的输入用户名出加入一个检查点,以检查输入的用户名是否正确:
然后设置检查点属性:
当然,你也可以在录制过程中设置检测点,以检查你所输入是否符合要求:
4.4 重新运行脚本
再次点击按钮,得到结果如下
两个结果都是Passed,表示都通过了,功能验证测试完成。
五、测试结果分析
由于本次实验主要是利用selenium的检查点功能来测试考试管理系统的修改删除功能,在开始设置检查点的时候,我本想试试用python代码编写的,第一次运行的时候连浏览器都没打开,后来发现是因为没写main代码。
填写完main后继续运行还是错误,在登陆界面显示用户密码错误
据了解好像是元素定位的问题,不过由于这是个人写的系统我也不知道该怎么修改元素定位
六、课设小结及心得体会
Selenium是一款十分便捷的工具安装方便,检测方便而且能够转换成代码进行运行。通过本次实验,让我对功能测试有了一个更深刻的了解,也知道如何运用selenium进行一次完成的功能测试,虽然还说不上是熟练掌握,但起码知道了使用的方法。除此之外,在本次实验中我还是碰到了许多问题,好在最后通过网上查询资料解决了,网上寻找解决方法往往需要花费更多的时间,这也是自学相较于系统的学习需要花费更多的努力的原因。所以,平时在上课的时候我们应该认真听讲,要不然课后就需要更多的努力才能弥补。