1、网络测试技术与应用URL和HTTP协议浏览器服务器请求相应HTTP URL全称是资源描述符,一个URL地址,它用于描述一个网络上的资源,如:http:/ 完整的URL组成:协议协议:/用户名用户名:密码密码域名域名:端口号端口号/目录目录/文件名文件名.文件后缀文件后缀?参数参数=值值#标志标志 HTTP协议定义了与服务器交互的不同方法,最基本的方法有4种:GET,POST,PUT,DELETE,分别对应着对这个资源的查,改,增,删4个操作。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。网络测试技术与应用GET方法n 最常见的解释:l GET使用URL或Cookie传参。而
2、POST将数据放在BODY中。l GET的URL会有长度上的限制,则POST的数据则可以非常大。l POST比GET安全,因为数据在地址栏上不可见。n 实际上,在HTTP中GET和POST与数据如何传递没有关系;HTTP协议对GET和POST都没有对长度的限制;安全不安全和GET、POST没有关系。GET请求的数据会附在URL之后,以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,
3、则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中XX中的XX为该符号以16进制表示的ASCII网络测试技术与应用POST方法右键单击浏览器中的Web页面,选择查看源代码,定位到form网络测试技术与应用使用WebScarab进行测试网络测试技术与应用软件安装 双击jar文件执行安装 或者在命令行中执行如下命令:java-jar webscarab-installer-20070504-1631.jar 注:需要到安装包所在目录执行相应程序网络测试技术与应用软件安装(续)进入安装程序,根据向导完成安装网络测试技术与应用运行程序软件 在桌面或开始菜单选择已安装的
4、程序网络测试技术与应用运行模式切换 WebScarab有两种运行模式 Lite Full 本实验中需要使用Full模式运行 从“Tool”中可以对模式进行切换 切换后需要重启程序网络测试技术与应用IE浏览器设置代理 WebScarab具有代理功能,可作为用户和应用间的桥梁 需要修改IE设置网络测试技术与应用IE浏览器设置代理将代理指向为 地址:localhost 端口:8008此时,系统发往外部的请求都会经过代理服务器转发。网络测试技术与应用设置WebScrab代理 选择Proxy-Manual Edit,选中Intercept requests前的复选框,保持GET和POST方法被选中 这样
5、,可以拦截所有浏览器发往外部的请求,除了所有图片和ping_session的请求。注:包括浏览器插件对外的链接网络测试技术与应用访问JForum网站 启动论坛系统,在IE地址栏输入本机的IP地址注:此处需要本机的IP地址。在命令行中键入ipconfig,查看本机的IP地址网络测试技术与应用分析通信机制 对网页的请求会被WebScrab拦截网络测试技术与应用选择“会员注册”功能 单击“会员注册”按钮,IE浏览器发往服务器的请求将被拦截 单击Accept changes按钮,直到进入注册页面。网络测试技术与应用进入注册页面 填写注册信息 会员:wtj,电子邮件: 登录密码:123网络测试技术与应用
6、分析截获请求 注意请求连接及填写的表单信息,POST方法网络测试技术与应用定位用户注册请求 定位到forum.page的请求,其编号为71网络测试技术与应用查看截获的请求双击forum.page请求,打开71号会话注:具体的请求编号因人而异网络测试技术与应用Fuzzer功能 右键单击71号会话,选择Use as fuzz template网络测试技术与应用Fuzzer选择Fuzzer选项卡,查看模板信息网络测试技术与应用添加测试数据 用记事本生成类型如右图所示内容的文本文件,分别保存为userinfo.txt和usermail.txt。文件中每行代表一次请求的数据,可以用作用户名、密码、确认密
7、码等信息。实际测试中可根据测试用例定义生成不同的测试数据文件。网络测试技术与应用导入测试数据 导入userinfo.txt中记录的用户信息网络测试技术与应用导入测试数据 同样的步骤导入usermail.txt中记录的邮件信息网络测试技术与应用进行测试 依次为表单项中的元素进行参数化,即导入测试数据 点击“Start”开始测试,请求数会减少 可修改测试数据,以重复多次完成测试用例网络测试技术与应用检查测试结果 可以查看到测试结果 使用测试脚本添加的用户进行登录测试网络测试技术与应用使用Selenium进行测试网络测试技术与应用Selenium-IDE介绍 使用Selenium IDE对JForu
8、m的用户注册模块进行测试 Selenium-IDE是用来开发Selenium测试用例的一个工具。它以易于使用的FireFox插件形式出现,在浏览器显示的页面中,通过在浏览器插件的上下文菜单中执行Selenium的命令,选择向插件传递页面显示内容相关的参数,快速地实现测试用例的开发。安装Firefox浏览器选择典型安装模式选择典型安装模式不需要把不需要把firefox设为默认浏览器设为默认浏览器安装Firefox浏览器不安装第三方工具不安装第三方工具完成安装,立即运行完成安装,立即运行firefox安装Firefox浏览器不导入任何数据不导入任何数据下次启动不检查是否默认浏览器下次启动不检查是否
9、默认浏览器网络测试技术与应用安装Firefox插件 单击Alt键显示菜单,从“工具”菜单选择“附加组件”选择“从文件安装附加组件”选项 在弹出文件选择窗口中选择selenium-ide-2.9.0.xpi插件,在浏览器将弹出的菜单中选择“安装”按钮 选择“立即重启”网络测试技术与应用安装Selenium IDE重启浏览器后,在“工具”菜单中选择“Selenium IDE”运行之。注意:首先打开需要运行测试用例的页面,然后再启动Selenium IDE。网络测试技术与应用Selenium IDE功能按钮介绍详见http:/seleniumhq.org/docs/02_selenium_ide.h
10、tml 网络测试技术与应用录制脚本网络测试技术与应用修改脚本 系统同时会记录用户所有输入,包括错误输入信息 在录制脚本后需要修改输入,包括删除错误输入内容网络测试技术与应用加入校验信息 选择成功注册用户后系统的提示信息“恭喜您!”在右键菜单中选择“verifyText css=center b恭喜您!”选项 此时会在IDE中出现校验命令网络测试技术与应用运行测试用例 保存测试用例 运行测试用例网络测试技术与应用运行测试用例 分析错误原因 修改测试用例代码,直到测试用例通过网络测试技术与应用Selenium WebDriver高级内容:通过Java编程对JForum的登录模块进行测试网络测试技术
11、与应用安装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,正确安装后应该有类似如下输出结果 注意:安装Mave
12、n前必须已经正确安装配置JDK,并设置JAVA_HOME网络测试技术与应用创建本地仓库 创建c:m2目录,并将repository.rar压缩文件解压到c:m2目录下,生成本地仓库。设置环境变量M2_REPO,指向本地仓库的路径网络测试技术与应用配置用户访问的settings.xml 修改安装目录下conf文件夹里的settings.xml文件,在图示位置增加一行本地仓库的配置。将修改后的settings.xml位置文件拷贝到本地资源库中,即C:m2repository目录下。网络测试技术与应用检查m2eclipse插件 依次点击菜单栏中的FileNewProject,在弹出的对话框中,找到M
13、aven一项,再将其展开 看到如图所示选项,说明Eclipse环境中已经安装了Maven的插件;否则需要手工安装该插件。网络测试技术与应用禁用内嵌m2eclipse内嵌Maven模块 通过Windows-Preferences打开Eclipse系统选项 在弹出的对话框中展开左边的Maven项,选择Installation子项 点击Add然后选择我们的Maven安装目录M2_HOME 添加完毕之后选择这一个外部的Maven网络测试技术与应用检查Eclipse中的Maven插件设置 单击User Settings选项,确保用户设置和本地资源库设置正确网络测试技术与应用编写pom.xml文件 在任意
14、位置创建MySel20Proj目录,编写如下pom.xml文件 4.0.0 MySel20Proj MySel20Proj 1.0 org.seleniumhq.selenium selenium-java 2.47.1 网络测试技术与应用创建maven项目 在工程目录下运行:mvn clean install 如果本地资源库配置正确,Maven将从本地资源库生成原始工程 出现BUILD SUCCESS字样说明创建成功。网络测试技术与应用生成项目框架 运行结束后,Maven将在工程目录下的target文件夹中生成如下项目框架。该框架即为Selenium-WebDriver项目网络测试技术与应用
15、导入MySel20Proj项目到Eclipse 运行命令mvn eclipse:eclipse网络测试技术与应用导入MySel20Proj项目到Eclipse File-Import.General-Existing Projects into Workspace 选择“Browse”定位到MySel20Proj目录 选择“Finish”,完成项目导入网络测试技术与应用创建源文件夹 创建src/main/java源文件夹 这是Maven的默认源文件夹,然后创建主测试文件网络测试技术与应用登录页面代码分析通过FireFox浏览器的“查看元素”功能查看登录窗口的源代码网络测试技术与应用对比登录前后
16、页面变化登录前,页面顶部有“登录”连接,对于id为login登录后,页面顶部有“注销”连接,对于id为logout网络测试技术与应用对比登录前后页面变化登录前,页面顶部左侧仅显示当前系统时间登录后,页面顶部左侧显示用户最后一次登录时间创建测试主文件创建一个新的创建一个新的Class填写包名和类名填写包名和类名网络测试技术与应用创建测试主文件package cn.edu.cuit.cs.selenium.example;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.sele
17、nium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.support.ui.ExpectedCondition;import org.openqa.selenium.support.ui.WebDriverWait;public class TestLogin public static String username=TiejunWang;public static String password=justatest;网络测试技术与应用创建测试主文件public
18、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 implementation.WebDriver driver=new FirefoxDriver();/And now use this to visit JForumdriver.get(http:/localhost:8080/jforum/forums/list.page);/Find the use
19、ranme and password elements by their namesWebElement usernameElement=driver.findElement(By.name(username);WebElement passwordElement=driver.findElement(By.name(password);网络测试技术与应用创建测试主文件/Enter username and password for loginusernameElement.sendKeys(username);passwordElement.sendKeys(password);/Check
20、 the welcome message before loginSystem.out.println(Before login);WebElement element=driver.findElement(By.className(gensmall);System.out.println(Welcome message is:+element.getText();/Now submit the form.WebDriver will find the form for us from the elementusernameElement.submit();/Wait for the page
21、 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););网络测试技术与应用创建测试主文件/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打印的结果信息网络测试技术与应用谢谢!