版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Web应用测试概要1阳山书屋云2阳山书屋Web应用与云计算什么是云?公有云私有云企业云3阳山书屋不同的对云的期望IT经理在企业规模变化时,无需购买新软件、新硬件设备,平滑扩展运算能力Internet企业无需关注设备和基础架构的运维,在业务增加时可以平滑扩展计算能力用户随时随地可以获取到的信息和私人存储4阳山书屋一种被认可的云的分类基础云提供基础的服务,允许使用者最大的资源自由度。例如Amazon的EC2服务云提供在基础云之上的服务接口,例如Google App Engine应用云面向最终用户的云服务,例如网盘、GMail等5阳山书屋Web应用和云有什么关系Web应用可能依赖于某种形式的云基础云
2、服务:例如依赖于某种云端的MC等服务云:例如在Google App Engine或类似服务上构建的应用应用云:例如从其他应用云获取数据Web应用本身也可以是应用云6阳山书屋云计算和测试有什么关系?云计算导致应用测试的关注点不仅仅在被测应用本身云计算使得测试面临一些技术上的挑战:对依赖服务的mock和fake云计算部分改变了测试的观点在发布前找出所有的缺陷不是最重要的快速发现和定位缺陷,快速修复的能力是最重要的7阳山书屋8阳山书屋Web应用测试 vs. 桌面软件测试桌面软件运行于操作系统平台软件的分发会带来巨大的成本软件运行环境限于单机(某些情况下需要少量的网络通讯)Web应用运行于浏览器中软件
3、分发和更新成本基本为0软件运行的环境非常复杂不少用户问题在测试环境中难以重现(环境复杂性)9阳山书屋桌面软件的测试思路原则:尽量在发布前发现缺陷软件运行环境基本受控以UI级别的功能测试为主10阳山书屋Web应用测试思路需要考虑多种测试类型功能测试性能测试安全性测试接口测试兼容性测试11阳山书屋功能测试通过日志分析获取用户行为,关注主要的使用场景在发布前发现所有问题不是最关注的因素性能测试由于Web应用性能的复杂性,性能测试除了与应用相关外,还与运行环境有很大的关系安全性测试安全性测试对暴露在外部(Internet)上的应用非常关键12阳山书屋兼容性测试针对不同浏览器进行兼容性测试接口测试尤其涉
4、及到与其他系统进行交互时,接口测试非常关键。即使对应用内部来说,一个良好的Web应用应该具有好的层次结构和可测试性,也应该被建立完善的接口级别的测试13阳山书屋Web应用功能测试14阳山书屋Web应用的功能测试Web应用的功能测试在技术方法上与桌面软件接近主要不同Web应用的表现形式不同(控件、界面元素等)应用系统模型不同(消息机制与HTTP请求-应答机制)某些Web特有的技术(cookie,session,Ajax等)15阳山书屋功能测试组织与测试设计从高层(high level)的角度来说,Web应用的功能测试与桌面应用相似同样的测试过程同样的测试设计方法同样的发现缺陷的方式从细微角度来说
5、,有些不同的地方帮助确认和定位缺陷的工具要求对Web应用的原理比较了解16阳山书屋一个Web页面是如何被展示出来的发送HTTP请求请求头/请求体得到HTML文档浏览器解析文档并获取文档中的其他资源对资源进行处理和执行生成DOM树Render页面并展示给用户17阳山书屋以Firebug为例展示页面的展现18阳山书屋对功能测试有帮助的工具Firebug (Firefox插件)Fiddler(仅支持IE)ChromeFirefox (有非常多的帮助开发和调试的web工具插件)19阳山书屋Web功能自动化测试单元测试接口级别的自动化测试低层次接口测试HtmlUnitUI级别的自动化测试20阳山书屋We
6、bDriver是什么WebDriver是一个Web应用自动化测试框架WebDriver提供了基于Java语言的对浏览器中的Web页面进行操作、解析、验证的框架21阳山书屋基于浏览器交互 vs. 基于Javascript基于Javascript优势框架和脚本具有更好的跨浏览器的能力劣势无法直接操作浏览器达成一些操作(例如,设置代理服务器,改变HTTP Request Header等)依赖于具体浏览器对Javascript的支持基于浏览器交互优势可以充分发挥浏览器的特点劣势脚本跨浏览器特性差,需要为不同的浏览器写不同的脚本22阳山书屋一段简单的WebDriver脚本import org.openq
7、a.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.htmlunit.HtmlUnitDriver;public class Example public static void main(String args) / 创建htmlunit driver 对象 WebDriver driver = new HtmlUnitDriver(); / 使用该对象访问Google driver.get(); / 根据名称找到
8、输入框对象 WebElement element = driver.findElement(B(q); / 在输入框中输入文本 element.sendKeys(Cheese!); / 提交表单。 WebDriver自动找到相应的表单 element.submit(); / 检查页面的标题System.out.println(Page title is: + driver.getTitle(); 23阳山书屋WebDriver的使用步骤生成WebDriver的一个实例打开需要被测试的页面在页面上查找需要操作的元素(WebElement元素,可以根据名称、Xpath、class等多种属性来查找)
9、操作该元素在新得到的页面上进行验证24阳山书屋WebDriver的Driver类型HtmlUnitDriverHTMLUnit类型的Driver,这种类型的Driver使用自己的HTML解析器,不需要启动实际的浏览器,对Javascript只有有限的支持优点:快缺点:不是真正的浏览器解析,对Javascript支持有限25阳山书屋InternetExplorerDriver类型该类型的Driver直接启动IE浏览器,使用IE浏览器访问页面和操作页面优点:直接使用IE浏览器操作缺点:速度相对HtmlUnit Driver慢26阳山书屋FirefoxDriver类型该类型的Driver直接启动Fi
10、refox浏览器,使用Firefox浏览器访问和操作Web页面优点:直接使用Firefox浏览器缺点:相对HtmlUnit速度慢27阳山书屋Demo使用FirefoxDriver调用Firefox浏览器访问Google网站28阳山书屋安装WebDriver从网站下下载WebDriver的Binary/p/webdriver/downloads/list将相应的jar文件放到classpath中29阳山书屋用JUnit作为测试框架使用JUnit可以简化代码的编写JUnit安装Eclipse自带JUnit,无需额外安装30阳山书屋开始编写第一个WebDriver用例import相应的package
11、junit.Framework.TestCaseorg.openqa.selenium.WebDriverorg.openqa.selenium.ie.InternetExplorerDriverorg.openqa.selenium.ie.WebElementorg.openqa.selenium.By31阳山书屋实例化一个WebDriver对象,该对象可以简单理解成测试中的“浏览器实例”WebDriver driver = new InternetExplorerDriver();32阳山书屋打开需要操作的页面driver.get(.hk)33阳山书屋获取页面上的元素并操作driver.f
12、indElement(B(q)查找页面元素的方法B(q)/查找名称为q的元素By.xpath(/a)/查找全部的链接(tag为a)By.class(.)/查找class为.的元素34阳山书屋操作完成后,验证得到的结果是否与预期结果一致AssertEquals(Google, driver.getTitle()AssertEquals(q, element.getAttribute(name)35阳山书屋练习打开输入“软件测试”进行搜索验证输出页面的标题为“Google”36阳山书屋让我们提高点难度打开输入“软件测试”进行搜索验证输出页面的标题为“Google”验证结果页面上的第一条搜索结果的链
13、接文字中包含“软件测试”的文字37阳山书屋问题来了如何获得“结果页面上的第一条结果记录”?38阳山书屋使用Xpathxpath是在HTML和XML中寻找特定节点的方法xpath详细教程见/xpath/index.asp39阳山书屋一个HTML页面如何取得第二个table的第一行的第二列?40阳山书屋xpath例子 Test page1name2job titleJust a line Alicesoftware testerBobsoftware engineer41阳山书屋对应的DOM树TableTableText第一行第二行第一行第二行42阳山书屋xpath常用的路径表达式43阳山书屋因此
14、,在上例中,我们可以用这个xpath表达式寻找到“第二个table的第一行的第二列”/html/body/table2/tr1/td244阳山书屋Google搜索结果的第一条记录的xpath/divid=res/div1/ol/li1/h3/a45阳山书屋xpath工具Firefox的xpather,xpath checker扩展46阳山书屋使用不同的属性查找element47阳山书屋练习打开输入“软件测试”进行搜索验证输出页面的标题为“Google”验证结果页面上的第四条搜索结果的链接文字中包含“软件测试”的文字48阳山书屋Web性能测试49阳山书屋软件性能的定义软件性能是什么?IEEE对软
15、件性能的定义:软件的固有属性软件的及时性符合用户要求的程度50阳山书屋不同视角的软件性能体现用户视角响应时间系统视角并发用户数量用户操作模式(每秒点击数)调优视角服务器资源情况应用服务器资源情况数据库资源情况应用时间消耗分布51阳山书屋性能测试的几个基本概念响应时间并发数吞吐量资源利用率场景52阳山书屋响应时间定义: 响应时间指的是从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间。53阳山书屋响应时间的分解响应时间=网络响应时间 + 应用程序响应时间响应时间 =(N1+N2+N3+N4)+(A1+A2+A3)54阳山书屋性能测试工具如何工作?模拟大量用户使
16、用脚本驱动模拟用户的行为测试过程中监控服务器指标统计结果并生成图表55阳山书屋性能测试结果图形的“定式”负载响应时间曲线图56阳山书屋负载吞吐量曲线图57阳山书屋当然,事情并不这么简单响应返回的时间是否就是用户感受到的“响应时间”?58阳山书屋所谓“前端性能”如何使页面的展示时间尽可能短?如何使用户可以尽快开始操作?如何使用户尽快看到页面开始”展示数据“?如何评估前端花费的时间?59阳山书屋前端性能工具Firebug工具HttpWatch工具IBM Page Detailer工具Yslow!工具60阳山书屋从应用性能到架构性能对一个大型Web站点来说,架构对性能的影响远远大于应用本身对性能的影
17、响负载分配方式缓存方式与策略数据存储方式61阳山书屋Web安全性测试62阳山书屋软件安全性软件安全性是个广泛的话题,一般来说,很难给出一个明确的关于软件安全性的定义,但软件安全性至少包含使用某些手段防止攻击产生效果及时应对可能出现的攻击63阳山书屋安全之禅 新手见到了大师。 新手问:“这个时间上有没有绝对安全的系统呢?” 大师说:“没有”。 新手不满足,继续问到:“如果是简单到只有一行的代码,也会有安全性问题吗?” 大师说:“即使程序安全,由于操作系统的不安全,也会存在安全性问题”。 初学者又问:“如果操作系统也是安全的呢?” 大师说:“操作系统不可能完全安全,即使操作系统是安全的,网络也会带
18、来安全性问题”; 新手仍不满足:“如果网络也安全呢?” 大师叹了一口气:“没有绝对安全的网络,即使网络是安全的,也会有人让他变得不安全”。64阳山书屋安全性的三个主要概念机密性机密性仅仅允许认证的人可以访问保护的信息。例如,如果邮递员阅读了你的邮件,这就是对你的隐私的侵犯 完整性完整性确保发送端和接收端的数据一致。如果有人在你的信中添加了额外的账单,他已经违背了了邮件的完整性可用性可用性确保你有权访问资源。如果邮局破坏了你的邮件或者邮递员花了一年的时间才邮递了你的信件,他已经影响了邮件的可用性 65阳山书屋编码视角的安全性从编码的角度来说,安全性存在于如下方面避免常见的编码问题(如不合理使用内
19、存操作函数导致缓冲区溢出,不合理使用SQL语句的组合导致可能的SQL注入攻击等)充分利用架构和编程语言的安全特性,实现安全的系统严格按照需求和设计,只实现需要实现的功能严格校验输入参数和调用函数时传入的参数,将恶意攻击数据消灭在入口66阳山书屋测试视角的安全性从测试视角来看,安全性其实就体现在对系统的安全性测试上Know Nothing TestingKnow Everything Testing口令猜测(词典暴力破解)社会工程攻击67阳山书屋维护管理视角的安全性安全性不仅仅是技术问题,更多的是管理问题人是影响系统安全性的最重要的因素风险管理安全策略安全教育 68阳山书屋及时发现并解决可能的问
20、题定期的系统扫描审计与审查糖罐陷阱和数据绊网69阳山书屋Web安全性测试的原则持续测试安全性测试不是“执行一次”就可以高枕无忧的,由于用户角色的变化,数据的变化,基础设施的变化,系统新的安全隐患都会不断出现尽量采用自动化测试自动化测试可以让安全性测试在不同的环境下持续的进行70阳山书屋Web安全性测试方法简单的说,主要的安全性测试方法是通过对系统进行攻击达成的分析可能的攻击,我们可以从三个维度考虑安全性测试从攻击发起者的角度考虑从安全特性的角度考虑从攻击的技术考虑71阳山书屋攻击发起者时刻窥探的hackers技术性攻击心怀不满的内部员工社会工程手段+技术手段被解雇的前员工社会工程手段好奇的用户
21、使用扫描工具和简单的试探攻击无意成为帮凶的普通用户作为发起dos等攻击的帮凶72阳山书屋从安全特性的角度考虑虽然安全特性并不能担保一个安全的系统,但是安全特性是构建安全系统所必需的。安全特性有四类: 认证:检验访问者是谁。它要求访问者是具有访问权限的人授权:仅允许操作者通过特定的方式来操作资源加密:处理信息的隐蔽,确保操作者在操作中不能窥探其他信息审核:保存操作记录来审查系统是否受到攻击 73阳山书屋“安全特性”角度的考虑考虑的主要问题是系统是否能够具有这些功能?系统是否提供了安全的认证功能?系统是否具有良好的授权机制?是否所有资源都位于授权机制的管理之下?在网络中传输的敏感数据,在页面中包含
22、的敏感数据是否都已经经过加密?加密是否对系统性能有影响?是否具有审查功能?是否用户操作都能被记录?74阳山书屋从技术角度看待攻击可能的攻击点75阳山书屋攻击的不同级别考虑对服务器的攻击,至少包含这样几个级别操作系统级别应用服务器/数据库服务器级别应用级别76阳山书屋以一个实际的电子商务WEB网站为例77阳山书屋常见的攻击方法Connection FailsOrganizationalAttacks有组织性的攻击Restricted Data保密数据Accidental BreachesIn Security非主要的安全缺口AutomatedAttacks自动化的攻击Attackers个人攻击V
23、iruses, Trojan Horses, and Worms病毒,木马,蠕虫Denial of Service (DoS)服务拒绝DoS78阳山书屋攻击者的攻击方法欺骗真实用户发送欺骗邮件或消息,吸引用户点击相应链接钓鱼方法跨网站(cross site)攻击79阳山书屋跨网站攻击跨网站攻击的方法是使用低权限用户的角色在网站上发布消息,发布的消息带有一个看上去合理的链接想想看,这样的攻击方式能够怎样发挥作用?80阳山书屋跨网站攻击的一般方式让用户在不知觉中执行恶意脚本和程序,从而在用户机器上安装木马获取到用户的SessionID,在用户的Session失效以前,可以利用此Session进行攻
24、击如果该用户对系统具有特权,攻击者甚至可以强迫用户执行对本机文件或是数据库操作81阳山书屋网络嗅探通过sniffer或是类似的工具,嗅探用户所在的局域网络,从中发现可能的用户敏感数据(例如用户ID和用户口令)网络嗅探在Internet上基本不可行,但在Intranet上,网络嗅探是一种常用的攻击方法特别的,对于无线网络,处于效率考虑,相当多的无线HUB都禁用了安全选项,这一点尤其危险82阳山书屋猜测密码猜测密码是一种最简单的攻击方法,但根据经验,这种方法却十分有效。原因是,大部分用户都愿意为自己设置一个简单易记忆的密码,方便自己。同时,也大大方便了攻击者猜测密码的攻击方法通常基于字典,或是和用
25、户比较接近的个人数据(生日、结婚纪念日、电话号码等)83阳山书屋拒绝服务攻击(dos攻击)拒绝服务攻击是目前Internet上的一种常用攻击手段,其原理是通过发送超出服务器处理能力的连接请求包使服务器崩溃Dos攻击并不能直接使攻击者获得服务器数据或是服务器特权,但作为Internet或是Intranet上的应用,被这种攻击方式攻击的可能性非常大84阳山书屋客户端安全性测试设计客户端攻击方式测试非法导航SessionID的失效时间SessionID的生成方法客户端数据CookieHidden字段URL本地数据文件Windows注册表85阳山书屋测试非法导航针对SessionID的生成方式攻击尝试
26、使用已失效的SessionID尝试猜测SessionID的生成方法86阳山书屋Hidden字段和Javascript脚本检查页面的Hidden字段和Javascript脚本Hidden字段在页面上的确不会显示,但千万不要忘记,攻击者可不是普通的用户测试时要检查的内容包括Hidden字段中是否有可跳过安全认证的链接?Hidden字段中是否有用户名和口令等信息?脚本中是否有敏感信息?更重要的:防止使用Hidden字段进行攻击87阳山书屋某电子商务网站POST的数据POST /cgi-bin/shopcart.exe/MYSTORE-AddItem HTTP/1.0Referer: /shirtca
27、talog/shirts2.aspConnection: Keep-AliveUser-Agent: Mozilla/4.76 en (Windows NT 5.0; U)Host: Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*Accept-Encoding: gzip Accept-Language: enAccept-Charset: iso-8859-1,*,utf-8Cookie: ASPSESSIONIDQQGQQKIG=ONEHLGJCCDFHBDHCPKGANANH; sho
28、pcartstore=3009912Content-type: application/x-www-form-urlencodedContent-length: 65PartNo=OS0015&Item=Acme+Shirts&Price=89.99&qty=1&buy.x=16&buy.y=5 88阳山书屋用Google发现网站的hidden Field在Google中搜索“type=hidden” and “name=xx” site:xxxx89阳山书屋避开Javascript的检查有些页面为了防止用户的错误输入(例如输入一个负数表示数量),使用页面的Javascript进行输入数据校验
29、但如果用户在客户端禁止Javascript,后果将会怎样?90阳山书屋本地数据文件如果应用在客户端使用文件作为临时存储手段,一定要注意测试本文文件中是否包含了敏感信息使用Filemon等工具发现系统的文件变化通过关电源等手段保留临时文件分析临时文件的内容和临时文件的作用91阳山书屋注册表(Registry)同样的,如果应用使用客户端的注册表项保存信息的话,和文件相同,也需要确保敏感信息不泄漏使用Regmon发现注册表的读写保留注册表的内容分析其内容和分析其作用机制92阳山书屋重要的原则从安全的角度考虑,所有敏感信息和安全控制都应该在服务端控制,而不要从客户端进行控制客户端是什么,你永远是无法预期的!93阳山书屋使用输入进行攻击缓冲区溢出攻击SQL注入攻击URL注入攻击94阳山书屋缓
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度水利工程项目投标担保委托保证合同3篇
- 二零二五版葫芦岛市房屋继承合同范本3篇
- 基于二零二五年业绩目标的小型餐饮店面馆饭店加盟合同3篇
- 二零二五年湖南机关事业单位合同制工人医疗保险聘用合同3篇
- 二零二五版电梯门套工程安全风险评估与应急预案合同3篇
- 二零二五年电子商务纠纷解决机制合同2篇
- 二零二五年度辣椒种植与农业科技创新合作合同3篇
- 二零二五年度物流配送中心场地租赁合同BF06023篇
- 二零二五年度服装调换货及退货处理合同范本3篇
- 二零二五年度酒店住宿代理服务合同示范文本2篇
- 新版DFMEA基础知识解析与运用-培训教材
- 制氮机操作安全规程
- 衡水市出租车驾驶员从业资格区域科目考试题库(全真题库)
- 护理安全用氧培训课件
- 《三国演义》中人物性格探析研究性课题报告
- 注册电气工程师公共基础高数辅导课件
- 土方劳务分包合同中铁十一局
- 乳腺导管原位癌
- 冷库管道应急预案
- 司法考试必背大全(涵盖所有法律考点)
- 公共部分装修工程 施工组织设计
评论
0/150
提交评论