1、实验内容实验目的熟练掌握黑盒测试技术可编写相关测试用例学习WebScarab和Selenium工具的使用从外部熟悉JForum论坛工作机制编写实验报告实验要求针对JForum论坛的用户注册模块,采用黑盒测试技术,编写该模块测试用例。结合测试用例,使用WebScarab和Selenium工具对论坛用户注册模块进行测试形成用户注册模块的测试报告HTTP请求URL和HTTP协议浏览器服务器请求相应HTTPURL全称是资源描述符,一个URL地址,它用于描述一个网络上的资源,如:http:/ webscarab-installer-20070504-1631.jar注:需要到安装包所在目录执行相应程序软
2、件安装(续)进入安装程序,根据向导完成安装运行程序软件在桌面或开始菜单选择已安装的程序运行模式切换WebScarab有两种运行模式LiteFull本实验中需要使用Full模式运行从“Tool”中可以对模式进行切换切换后需要重启程序IE浏览器设置代理WebScarab具有代理功能,可作为用户和应用间的桥梁需要修改IE设置IE浏览器设置代理将代理指向为地址:localhost端口:8008此时,系统发往外部的请求都会经过代理服务器转发。设置WebScrab代理选择Proxy-Manual Edit,选中Intercept requests前的复选框,保持GET和POST方法被选中这样,可以拦截所有
3、浏览器发往外部的请求,除了所有图片和ping_session的请求。注:包括浏览器插件对外的链接访问JForum网站启动论坛系统,在IE地址栏输入本机的IP地址注:此处需要本机的IP地址。在命令行中键入ipconfig,查看本机的IP地址分析通信机制对网页的请求会被WebScrab拦截选择“会员注册”功能单击“会员注册”按钮,IE浏览器发往服务器的请求将被拦截单击Accept changes按钮,直到进入注册页面。进入注册页面填写注册信息会员:wtj,电子邮件:登录密码:123分析截获请求注意请求连接及填写的表单信息,POST方法定位用户注册请求定位到forum.page的请求,其编号为71查
4、看截获的请求双击forum.page请求,打开71号会话注:具体的请求编号因人而异Fuzzer功能右键单击71号会话,选择Use as fuzz templateFuzzer选择Fuzzer选项卡,查看模板信息添加测试数据用记事本生成类型如右图所示内容的文本文件,分别保存为userinfo.txt和usermail.txt。文件中每行代表一次请求的数据,可以用作用户名、密码、确认密码等信息。实际测试中可根据测试用例定义生成不同的测试数据文件。导入测试数据导入userinfo.txt中记录的用户信息导入测试数据同样的步骤导入usermail.txt中记录的邮件信息进行测试依次为表单项中的元素进行
5、参数化,即导入测试数据点击“Start”开始测试,请求数会减少可修改测试数据,以重复多次完成测试用例检查测试结果可以查看到测试结果使用测试脚本添加的用户进行登录测试使用Selenium进行测试SELENIUM IDE使用Selenium IDE对JForum的用户注册模块进行测试Selenium-IDE介绍Selenium-IDE是用来开发Selenium测试用例的一个工具。它以易于使用的FireFox插件形式出现,在浏览器显示的页面中,通过在浏览器插件的上下文菜单中执行Selenium的命令,选择向插件传递页面显示内容相关的参数,快速地实现测试用例的开发。安装Firefox浏览器选择典型安装
6、模式选择典型安装模式不需要把不需要把firefox设为默认浏览器设为默认浏览器安装Firefox浏览器不安装第三方工具不安装第三方工具完成安装,立即运行完成安装,立即运行firefox安装Firefox浏览器不导入任何数据不导入任何数据下次启动不检查是否默认浏览器下次启动不检查是否默认浏览器安装Firefox插件单击Alt键显示菜单,从“工具”菜单选择“附加组件”选择“从文件安装附加组件”选项在弹出文件选择窗口中选择selenium-ide-2.9.0.xpi插件,在浏览器将弹出的菜单中选择“安装”按钮选择“立即重启”安装Selenium IDE重启浏览器后,在“工具”菜单中选择“Seleni
7、um IDE”运行之。注意:首先打开需要运行测试用例的页面,然后再启动Selenium IDE。Selenium IDE功能按钮介绍详见http:/seleniumhq.org/docs/02_selenium_ide.html 录制脚本修改脚本系统同时会记录用户所有输入,包括错误输入信息在录制脚本后需要修改输入,包括删除错误输入内容加入校验信息选择成功注册用户后系统的提示信息“恭喜您!”在右键菜单中选择“verifyText css=center b恭喜您!”选项此时会在IDE中出现校验命令运行测试用例保存测试用例运行测试用例运行测试用例分析错误原因修改测试用例代码,直到测试用例通过SELE
8、NIUM WEBDRIVER高级内容:通过Java编程对JForum的登录模块进行测试安装Maven解压Maven压缩文件apache-maven-3.0.3-bin.zip到C盘根目录,目录结构如右图所示设置系统环境变量M2_HOME,变量值为Maven的解压路径,例如:C:apache-maven-3.0.3修改系统环境变量PATH将M2_HOME下的bin目录加入系统环境变量PATH中辅助选项设置MAVEN_OPTS环境变量为:-Xms256m-Xmx512m避免运行maven时出现内存溢出错误检查Maven安装在命令行中输入mvn-version,正确安装后应该有类似如下输出结果注意:
9、安装Maven前必须已经正确安装配置JDK,并设置JAVA_HOME创建本地仓库创建c:m2目录,并将repository.rar压缩文件解压到c:m2目录下,生成本地仓库。设置环境变量M2_REPO,指向本地仓库的路径配置用户访问的settings.xml修改安装目录下conf文件夹里的settings.xml文件,在图示位置增加一行本地仓库的配置。将修改后的settings.xml位置文件拷贝到本地资源库中,即C:m2repository目录下。检查m2eclipse插件依次点击菜单栏中的FileNewProject,在弹出的对话框中,找到Maven一项,再将其展开看到如图所示选项,说明E
10、clipse环境中已经安装了Maven的插件;否则需要手工安装该插件。禁用内嵌m2eclipse内嵌Maven模块通过Windows-Preferences打开Eclipse系统选项在弹出的对话框中展开左边的Maven项,选择Installation子项点击Add然后选择我们的Maven安装目录M2_HOME添加完毕之后选择这一个外部的Maven检查Eclipse中的Maven插件设置单击User Settings选项,确保用户设置和本地资源库设置正确编写pom.xml文件在任意位置创建MySel20Proj目录,编写如下pom.xml文件 4.0.0 MySel20Proj MySel20P
11、roj 1.0 org.seleniumhq.selenium selenium-java 2.47.1 创建maven项目在工程目录下运行:mvn clean install如果本地资源库配置正确,Maven将从本地资源库生成原始工程出现BUILD SUCCESS字样说明创建成功。生成项目框架运行结束后,Maven将在工程目录下的target文件夹中生成如下项目框架。该框架即为Selenium-WebDriver项目导入MySel20Proj项目到Eclipse运行命令mvn eclipse:eclipse导入MySel20Proj项目到EclipseFile-Import.General-
12、Existing Projects into Workspace 选择“Browse”定位到MySel20Proj目录选择“Finish”,完成项目导入创建源文件夹创建src/main/java源文件夹这是Maven的默认源文件夹,然后创建主测试文件登录页面代码分析通过FireFox浏览器的“查看元素”功能查看登录窗口的源代码对比登录前后页面变化登录前,页面顶部有“登录”连接,对于id为login登录后,页面顶部有“注销”连接,对于id为logout对比登录前后页面变化登录前,页面顶部左侧仅显示当前系统时间登录后,页面顶部左侧显示用户最后一次登录时间创建测试主文件创建一个新的创建一个新的Cla
13、ss填写包名和类名填写包名和类名创建测试主文件package cn.edu.cuit.cs.selenium.example;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.support.ui.ExpectedCondition;import org.openqa.selenium.
14、support.ui.WebDriverWait;public class TestLogin public static String username=TiejunWang;public static String password=justatest;创建测试主文件public static void main(String args)/Create a new instance of the Firefox driver/Notice that the remainder of the code relies on the interface,/not the implementati
15、on.WebDriver driver=new FirefoxDriver();/And now use this to visit JForumdriver.get(http:/localhost:8080/jforum/forums/list.page);/Find the useranme and password elements by their namesWebElement usernameElement=driver.findElement(By.name(username);WebElement passwordElement=driver.findElement(By.na
16、me(password);创建测试主文件/Enter username and password for loginusernameElement.sendKeys(username);passwordElement.sendKeys(password);/Check the welcome message before loginSystem.out.println(Before login);WebElement element=driver.findElement(By.className(gensmall);System.out.println(Welcome message is:+
17、element.getText();/Now submit the form.WebDriver will find the form for us from the elementusernameElement.submit();/Wait for the page to load,timeout after 10 seconds(new WebDriverWait(driver,10).until(new ExpectedCondition()public Boolean apply(WebDriver d)return(d.findElement(By.id(logout)!=null)
18、;);创建测试主文件/Check the welcome message after loginSystem.out.println(After login);element=driver.findElement(By.className(gensmall);System.out.println(Welcome message is:+element.getText();/Close the browserdriver.quit();运行测试文件右键单击TestLogin.java文件,选择“Run AS”选择“Java Application”查看结果此时程序会通过WebDriver同Firefox进行通信,自动进行登录并返回结果请确认此时Selenium IDE插件未打开查看Eclipse打印的结果信息谢谢!