| 自动化测试selenium1.selenium介绍
  
 1.selenium工具是模拟用户操作,控制浏览器的工具 主要用于网页测试,是测试web段的主流的自动化测试工具2.thoughtworks公司开发的
 2.为什么流行?  
 跨操作系统、跨浏览器、跨语言、开源等等 3.selenium涉及的技术  
 java基本语法html标签
 css(层叠样式表)
 testNG框架
 maven(导入需要的jar包)
 4.应用  
 可以做回归测试可以做业务流程
 独立的功能测试
 5.自动化测试的前提  
 手工测试已通过需求稳定
 产品或项目的周期要长
 脚本可以复用
 测试人员技能:懂业务、懂代码、懂测试
 6.selenium工作原理  
 1.0→selenium-rc(远程控制服务器)+selenium-core2.0→selenium1.0+webdriver 使用脚本语言→控制webdriver→控制浏览器→浏览器打开被控制的程序
 7.selenium需要的组件  
 selenium-ide(集成开发环境)selenium-core(核心,最基础的代码)
 selenium-remote control
 server(远程控制服务器)
 selenium-api(应用程序编程接口)
 selenium webdriver(web驱动)
 selenium gird(提供脚本运行的环境)
 8.selenium脚本语言如何选择  
 1.取决于测试人员的技能水平2.根据项目要求,被测试系统的开发语言
 3.语言对插件的支持情况
 4.自动化测试框架的需要
 java→testNGpython→unittest
 9.环境搭建  
 编码环境:eclipse→JDK→配置环境变量  
 自动化软件环境: 浏览器:火狐35.0.1(设置不更新)插件:selenium-ide-2.9.0.xpi、firebug
 编码环境  
 1.maven作用与安装作用:管理jar包,通过配置pom.xml文件,导入需要的jar包
 安装:解压.zip包,放到D盘根目录下,目录名不能包含中文或空格
 2.maven配置  环境变量:– 新建:变量名(M2_HOME)、变量值(D:\apache-maven-3.0.5[maven的解压路径])
 – 修改:变量名(path)、变量值(;%M2_HOME%\bin)
 – 验证:cmd→mvn -version
 将maven与eclipse进行关联:– eclipse-window-perferences-maven-installations-add-选择“apache-maven-3.0.5”的存放路径
 – 导入资源包:解压资源包m2.zip,拷贝到%USERPROFILE%,只能有一个。
 3.创建maven项目 file-new-other-maven-project-下一步-下一步-下一步
 4.更新JRE版本 在JRE上右键-buildpath-configure-build path-edit-更新为1.7即可
 5.配置pom.xml文件导入selenium相关的jar包 打开pom.xml文件点击右下角的pom.xml,进入代码试图添加selenium依赖(dependency)点击保存左侧的mavendependencies中会导入大量的包
 10.html基础  
 input、a(行级)、img、div(块级标签)、span(行级) 11.元素定位 (1)常用(输入框、按钮、图片):id、name、className 
driver.findElement(By.id(''username")).sendKeys("admin");
driver.findElement(By.name(''password")).sendKeys("123qwe");
driver.findElement(By.className(''tight")).sendKeys("今天要努力哦!");
 (2)链接(a标签):linkText、partialLinkText 
driver.findElement(By.linkText("行检")).click();  # 拷贝全部文本时用
driver.findElement(By.patialLinkText("行")).click(); # 拷贝部分文本,但必须是连续的文本
 (3)万能:xpath、css // 定位方法:xpath
// 绝对路径
driver.findElement(By.xpath("/html/body/div[2]/div[1]/div[4]/div/ul/li[3]/a/span/b")).click();
// 相对路径
driver.findElement(By.xpath("//input[@value='查询']")).click();
driver.findElement(By.xpath("//img[1]")).click();              # 此相对路径下的第一个img元素
driver.findElement(By.xpath("//div[2]/div[1]/div[4]")).click();
// 定位方法:css
driver.findElement(By.cssSelector(input[value='查询'])).click();
 (4)用的少:tagName // 定位方法:tagName
driver.findElement(By.tagName("a")).click();
// 网页中标签唯一
// 网页中同一个标签如果出现多次,就不能用
 (5)页面跳转 // 打开一个新窗口时,如何将鼠标由旧窗口移到新窗口
public static void main(String[] args){
	jump(driver);
	// jump()中的driver为形参
	public static void jump(WebDriver driver){
		// 获得旧窗口(当前窗口)的句柄,并存为变量
		String old = driver.getWindowHandle();
		for(String i : driver.getWindowHandles()){
			if(i.equals(old)){
				driver.close();
			}else{
				driver.switchTo().window(i);
			}
		}
	}
}
 (6)下拉框 Select se = new Select(driver.findElement(By.name("fruit")));
// 方式一:通过下标定位元素
se.selectByIndex(5);
// 方式二:通过value值定位元素
se.selectByValue("xigua")
// 方式三:通过可视化的文本内容(加汉字)定位元素
se.selectByVisibleText("猕猴桃")
 (7)frame切换 // 跳进去再跳出来,再跳进下一个框架里操作,以此类推
// 逐层跳 逐层返
// 进入
driver.switchTo().frame("middleframe");
// 出来
driver.switchTo().defaultContent();
 (8)鼠标悬停 // 将鼠标移到页面元素上
Actions as = new Actions(driver);
as.moveToElement(driver(By.linkText("手机、数码、通讯"))).perform();
 (9)Alert弹窗处理 driver.switchTo().alert().accept(); // 确定
driver.seitchTo().alert().dismiss();// 取消
 12.页面元素定位不到,可能的原因有哪些?  
 1.className或value等,取值包含空格2.id、name、className等,同一页面取值重复
 3.partialLinkText取部分值,部分值和网页其他值重复
 4.tagName,多个同名标签存在
 5.页面发生跳转,没有进行页面切换
 6.页面出现alert弹窗未处理
 7.页面中包含frame
 网页存在frame,必须先进入frame,才能定位到frame里的元素未进入frame进入未出来
 8.页面未加载全,需时间等待 13.自动化框架的搭建和使用:testNG  
 搭建: 1.通过配置pom.xml文件,添加testNG的依赖包
 使用: 1.在maven项目里新建一个包,如com.testing.testng2.创建一个testng的类:选择包-new-other-tesng-testng class
 技术:
1.注解:@开头,如@Test,是程序执行的入口,充当main方法的角色,缺少他就不会运行出结果– @Test(dependsOnMethods=“login”),作用:通过设置dependsOnMethods的值,控制方法执行的顺序
 – @source,表明excel表格的存放路径,即指定数据来源
 – @DataProvider,标记一个方法,作为一个测试方法的数据供应。@Test(DataProvider=“数据提供源”)
2.参数化(数据驱动)– 二维数组。
 使用场景:
 数据在代码里写死,代码与数据之间的关联性太强,将代码与数据分离开
 – excel(读取excel中的数据)
 将代码与测试数据彻底分离
 – 批量执行测试用例
 xml文件,指定要执行的代码
 – 测试报告
 选中项目-右键-refresh-项目中生成一个文件夹:test-output-选中文件夹中的index.html-右键-open with-Web Browser-即可查看报告(html网页版)
 |