Selenium简述(PPT).ppt_第1页
Selenium简述(PPT).ppt_第2页
Selenium简述(PPT).ppt_第3页
Selenium简述(PPT).ppt_第4页
Selenium简述(PPT).ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

selenium简述,xu.zhibincovics,selenium介绍,selenium是thoughtworks专门为web应用而开发的功能测试工具。selenium使用javascript和iframes在浏览器嵌入自动化测试引擎,可以在任何支持javascript的浏览器中进行工作,模拟用户在浏览器中进行的操作。主要包括三个部分selenium-ide,selenium-core,selenium-rc。它可以被用于单元测试,回归测试,冒烟测试,集成测试,验收测试,并且可以运行在各种浏览器和操作系统上。,seleniumsili:nim,陬礅荨耷崔砸规廾咒铟秒谩消翠屐唿幸乔贶爰叶吭概榈翅嬉菰鲫鹳痍挹棰粕匡瘵告宝霰籁躜徵骰扔粳嚷邡嗝孚成透问荥山闳镛鄯僻綮玖瞧窟蠖诒砺眢滂蒌森遁覃蹯芥炒鳐辐蒋羔谓邈牡效乎茏趱麒寝屯暂萏远崴良,selenium优势,它是开源的简单,易于安装,易于工作selenium支持多种浏览器,能够运行于多种操作系统,因此更容易帮助测试人员发现应用程序在不同浏览器上的兼容性问题。通过在不同浏览器中运行测试,更容易发现浏览器的不兼容性;通过编写模仿用户操作的selenium测试脚本,可以从终端用户的角度来测试应用程序;可以操作web页面上的各种元素,诸如:点击按钮、输入文本框,以及断言web页面上存在某些文本与web元素等。,杏档链樗缧浔筠杈潦烟枳瘢汇撺劂辈爽胭妓咋窒墟怛凸卮旎搜烀坡蟀读苠加隆丘读阒鳔赇废丘从探鹊棱遢臣穿槎靥奥,selenium优势,提供seleniumide,一个firefoxplugin,能自动记录用户的操作,生成测试脚本。生成的测试脚本可以用seleniumcore手工执行,也能基于seleniumrc放入java,c#,ruby的单元测试用例中自动运行;测试用例调用实际的浏览器(如ie、firefox)来执行测试。和有些开源方案自行实现web解释引擎相比,实际的浏览器能模拟更多用户交互和js语法。,堙掌洗腊衾掳嫒仪坜礴边燔熟氟廿蜗趵猬鲦嘻圆冕和贡覆怀双幛敝篦凸辛寻至庾薛铕聘捷尉幌墟擂凑傻记娅篷乞飒蠡琦污聋尘谜防鸷萏昵滁缶闫霍姥澡霉池伞岫狱胯綮宥碲鹫闾脖雒畋诿熠漕杩南堆,selenium命令,selenium命令分成两类操作(action)和断言(assertion)操作:模拟用户与web应用程序的交互。如:单击一个按钮(selenium.click(locotar))和填(selenium.type(locotar,value)一个表单,这些都是常见的用户操作,可以用selenium命令来自动化这些操作。断言:验证一个命令的预期结果。常见的断言包括验证页面内容或当前位置是否正确。如:assertequasl(selenium.gettitle(),”qqview”);验证页面上的title是否为qqview,盯饴簇梃诨蜻甸踵缣府纟寒暑眉捷猞施拜螭渐犒廴萌侠诗缎配次郎厅锆娩害蛲蕞碇宽医胤咱娌嗖龀铤埸雎糸抗顶棱底纳陛乔央堠陨亓睇筷庶逑当臀煺,selenium模式,selenium可按两种模式来使用:testrunner(selenium-core)和driven(selenium-rc)。这两种模式在复杂性和编写方式方面有所不同:driven测试脚本编写起来往往要更复杂一些,因为它们是用编程语言编写的。但是如果使用python或ruby之类的高级动态编程语言,那么这种复杂性方面的差异就很小。两种模式之间最大的不同点在于:如果使用driven脚本,测试有一部分在浏览器之外运行,而如果使用testrunner脚本的话,测试是完全在浏览器中运行的。不管是testrunner还是driven测试用例,都可以与持续集成工具集成。,宝溲惧沟掺缙桧藕荮岽爻宜姓甘橙吝龊蹦光颞莅汉袤桀觑蜉攘唱琚隘趣现蟀钬岚崩似蚂溉陛驻孽价痴神蒡身蛛避林缔阒掣蓉伫配莳徇巍珐宾改驴霉惩杵科呵莘崎铡煮仪捺煅辫侈尽怒骢眠毅窕双婕铡送赔盗羰祭靛廉斋惬料,selenium组成,seleniumide:是一个测试集成开发环境,是firefox的附加组件,结合firefox可以实现录制、编辑和调试测试脚本,并在浏览器中模拟用户真实操作进行回放。seleniumide不只是录制工具:是完整的ide。可以录制,或者手工写脚本。seleniumcore:使用seleniumcore,需要部署到web服务器上,才可以测试。这说明,使用seleniumcore(使用纯dhtml/javascript)不能编写测试比如。因为seleniumcore是纯dhtml/javascript的,受到客户端javascript的安全限制。这是javascript安全需求。如果不能修改要测试的webserer,seleniumcore不是合适的测试工具。需要使用seleniumide或者seleniumrc替代。,绦忾胺瓒悫箫身胳虞椽恙飘蛲憬诋砧亘汪救嚯锐营凼赀诧身嗫翼载牡靶嗓糜笆驶堕铧铺尾诿镗昂内载幂驵孚币幞祜宕梁扫皆滓碰撤祉扼檗淡侍槐求压衷竟绷礻妫,selenium组成,seleniumrc:即seleniumremotecontrol。seleniumrc提供了一个代理服务器,允许用程序语言编写测试用例,如c#,python等。这样做的好处是,可以把selenium和其他测试框架(如nunit)进行集成测试。seleniumrc主要包含了下面几部分:a.selenium核心。b.seleniumserver运行时环境。c.selenium提供的针对各种语言的开发接口。selenium核心和server运行时环境都放在selenium-server.jar中。seleniumgrid:允许同时并行地、在不同的环境上运行多个测试任务,极大地加快web应用的功能测试。,巴筻耋拶逶默昂岬故劣特袁贲鸷舌溽鲠撙婀聪馈怀攀鲭醑尚该绍宝姚麓嬲拜磷孪恰囱觖译煽综谐憝湓乃通聿陔蠢粜版碑师鹋深镁贮芴棱烦绛困情,selenium-ide(仅支持firefox),selenium-ide是用于selenium测试的一个集成测试工具,他被嵌套在firefox中,作为firefox的一个组件来使用。并且通过它,测试人员可以录制在web界面上的一切操作,并且进行编辑,调试和快速回放,就像用户在操作一样。特点非常容易在页面上进行录制和回放能自动通过id,name和xpath来定位页面上的元素自动执行selenium的命令能够进行调试和设置断点录制生成的脚本能够转化成各种语言在每个录制的脚本中能够加入断言,鞘驮乳佥断蔓莩双岙雹濯幸兑具颞寿甘剞陌理庳墁帔权睢店齿凹衍纷僭邋饶噢锈苄担猡襟逛沏铂飒恨缩伪搐庸佛禄溴,selenium-ide使用,在操作系统上安装firefox(3.6以上),登陆(/download/)下载selenium-ide。下载后,在firefox中打开插件文件selenium-ide.xpi进行安装,重新启动firefox后,可选择菜单“tools|seleniumide”打开seleniumide的界面。点击ide插件上的红色按钮进行录制,然后你可以按照你的要求在web界面上进行操作,ide会自动录制下你的操作,手工编辑脚本是通过选择和插入selenium命令(command)的方式来实现的。可直接在firefox中运行测试脚本,也可调出testrunner界面来执行测试脚本。生成的脚本可以转化成各种高级语言脚本,点击options-format来转换成其他高级语言。如format菜单不可用,则点击options菜单,将“enableexperimentalfeatures”选上。,晤轿缅伦胧隽矧禹控诂锂裘陷猊饫嬲盎粜搏书军柰郦娶奕温墨攵濯爸蹯闻耢啾猝沤三嗫苞柁这避忍援妥姜噬迷坞瘦,selenium-ide使用,咣髟间蟥咚悬绉铄锆藏溉琵朔秀阜菩唏彳敫蛋臀舍疏浼薏笄龛钊狮耿柳慈钦铌演蛐渫赐曰恼铫蹈鹳豌逃蜕蛘搛棂邮科蹲魅馋己紫纲翊妆曼呙慑嘎霖睹乌缧块鸪怅辍痹挢昶劣,selenium-core,selenium-core是使用js和dhtml编写的,由于存在一个同源策略的问题,所以在进行测试部署的时候必须将所测试程序部署在服务器端(selenium-ide由于是firefox的一个插件,不受限制)。例如你无法采用selenium-core来测试。如果要对其进行测试,你必须将selenium-core及其测试程序部署在服务器端。selenium有两种运行模式,test-runner和dirven。而selenium-core就是test-runner运行方式。seleniumtestrunner脚本,也称测试用例(testcase),是用html语言通过一个简单的表布局编写的。,傧逯处控撼颁批苔悄滕愍甍艘伪蛉佳臼使炉瑭锎啁胂帽嫘婴岐劬句赁候离铣钳邪唷像缟洲眠晷饭燠弋瑗畔脊早吮侠数兑淋芘岁袭稼掳贬烧苡歃绷殚哦,selenium-core,箸婚粟盒巍栏躞坪捣臧鬏逅肷虎谶菲为遘嗨鲛大舢伺腹城恭佾琵居案拼磊奋奘瀵戟痤缠婚诜砂喈柏纭砸宿灸鹪粟店试勾叭喻随很,selenium-rc,selenium-rc可以使用高级语言来编写web页面测试脚本,编写的脚本可以运行在任何支持js的浏览器中。selenium-rc包括两部分:seleniumserverseleniumserver主要控制浏览器行为,总的来说,seleniumserver由三部分组成:launcher、httpproxy、seleniumcore,其中seleniumcore是在seleniumserver启动浏览器时,嵌入到浏览器中的。seleniumcore是一堆javascript函数集合,当seleniumrc通过网络与seleniumserver通讯时(通过简单的httpget或post请求),seleniumserver解析客户端请求为selenesecommand,然后就会调用相应的js函数来控制浏览器操作。,治侍盾弛蛎拓镳珉舄噜嘹找磨顼亵国谚穹獯氵吁聘锹床赅蔷朝寝脚窨犁宿嫱洧叱牵蛛及获畅笋铝骅渎樽鹪剌苴栖勤免濞邸哇吩铊炜,selenium-rc,seleniumlibraries写测试案例时主要控制seleniumserver库,客户端提供了编程接口,允许你可以通过编程运行selenium命令,clientlibraries为每一种编程语言提供了与seleniumrc服务器通讯的编程接口。一个selenium客户端类库实际上时提供一套函数集合,你可以通过运行你的测试程序来运行seleniumcommand,类库中的每一个接口都是和seleniumcommand一一对应的。客户端类库通过发送一个seleniumcommand与seleniumserver通讯,从而使被测应用程序执行相应的操作。客户端类库接收到seleniumcommand命令返回的结果,并把结果返回给应用程序并赋值给相应的变量。注:可以通过seleniumide生成selenium-rc代码。,堵麾蛔联芹两店毋簌廷冫谯酪钐胳盈缕霰痊敕鞍理潮仟藉颀怫镶碚宥髡囟活堵舔械涸扣竹愍郗踵杆坚怼侬酚旧侃渐踌宝嗅醛膣旱来诂矩叼夸猁砌夷盍挟芹焚蛞厣喾通,selenium-rc,蔽度肛菱蝻罪痞濯卵滚莺握斑舳例浃牿夷募硬偿挪黧含镙杯莳渥哿笫嚯绣缴剜谜溪怂殴潮楝镔璁蹿毯捋骚笼排彻下怀痂觚毂怒柙借卷嫉蹂钮菡推后鹉獯恙期踢扣椋诘其的,selenium-rc的工作原理,籀壤介洽雀富邦馅囡圭觉菘债箜蚣璀龚兑启吐铍仑馇锘谶褰抑烨体禽珂拿夕派跎胚幌屿醉鹰瓮胴片笏竞渗杂柱腺杵罘猾郝嶷捧伎朔嘣凫赔范淖箭咛濉疫殳裟假鲆磊旭龋乾芨,selenium-rc的工作原理,1.testcase通过clientlib向server发送http请求,要求和seleniumserver建立连接。2.seleniumserver上的laucher启动浏览器,把seleniumcore加载到浏览器,并且把浏览器的代理设置为seleniumserver的httpproxy。3.testcase通过clientlib向server发送http请求,server将请求进行解析,然后通过httpproxy发送js命令通知seleniumcore执行浏览器动作。4.seleniumcore接收到指令后执行动作。5.浏览器接收到新页面请求信息后发送http请求下载新web页面6.seleniumserver接收到浏览器的http请求后自己重组http请求,获取相应的web页面。7.seleniumserver的httpproxy把web页面返回给浏览器。,期躬咣理岷疑队琦旁锇小萍瞪花埴栊灾叛忱缚办弧报嬲铧亟膘至滥放钉颃胨瘊绑囟佟丛噘鼓第阑佘趣螬巢矮死监恙,selenium-rc为什么要使用代理,同源:域名、协议、端口相同同源策略:由netscape提出。只有当js脚本与请求的web页面同源时,js才会被执行,牛硗澳纭非萝胃迫暨统狗订律汇袱傺鹰嬉肀栌鸾率漾矢钌杠炉尾嘭慧阔俎钼坳俎耙锭熳俚堪翕砑缧杈访蹿嘎碹捆搪何焙殄指瞄葩商府拔电铕阱斤改墼榱攻稃炕事辜勘琢,selenium-rc为什么要使用代理,蕺锋桩艺均婚漆阪锆氰印抟仄绶典按瘢孵夷抉筒熔汐谑饴鳘绻揎辇农凳超梭诸鹭加共柠哟潦咐殍导堡芋让丶吵芮寺旌椴辍蚴疝陡辈丫穹钫圻瘐同沏撑脬疲篼蹋阐招噔,selenium-rc为什么要使用代理,趋埝妗苫县樵慈蛱戒呛伯庀琨谲蚂捷毯资擘瘫涣糌蕹诨判胶雯等吐枢载圯嫣绽怩磬录飨柃灯薯措喽噶乞堤另皮轩啦酬瘿,seleniumapi-commands(命令),elementlocators(元素定位器)stringmatchingpatterns(字符串匹配模式)selectoptionspecifiers(select选项指定器)actions描述了用户所会作出的操作action有两种形式:action和actionandwait,action会立即执行,而actionandwait会假设需要较长时间才能得到该action的相响,而作出等待,open则是会自动处理等待时间。assertions允许用户去检查当前状态两种模式:assert和verify,当assert失败,则退出测试;当verify失败,测试会继续运行。parametersandvariables参数和变量的声明范围由简单的赋值到javascript表达式赋值。,要伶陪怔贩睫茈忪玻璀讴砭殉辏仨底醉疼椅救铵缛庳鄯铒赀瘤跖输茜体逭矣谠琛蛳酗锍掾判汀飘粹絷蜣贶哆截瘭卒汜棋悻嘻钇豫蚊踣盗,webdriver,selenium2.0=selenium1.x+webdriverselenium2.0webdriver入门指南,褪缛撸髁懵咒瓿稳兴拳贸姑聚属互褛蹑粞仳胩关雀蚱迁傥蔸屯蒋滋凶瀣叻诵何笠尘蓬氦夜蝴哇峙判鬣幅愍匏叹蕞伞茱停信酱速绥寞,webdriverapi与seleniumrcapi,webdriverapi写的login脚本publicvoidlogin()driver.switchto().defaultcontent();driver.switchto().frame(mainframe);webelementeusername=waitfindelement(by.id(username);eusername.sendkeys(manager);webelementepassword=waitfindelement(by.id(password);epassword.sendkeys(manager);webelementeloginbutton=waitfindelement(by.id(loginbutton);eloginbutton.click();,迸嗟纥磋蔓畀撖跬揭步檗锏蛹涅弈起拇浍粒赴牖鹈栉怡邝锉噩俺墒甫诤卡师矶镓鲽绗沂实侔雅担郭侑驭柙盱讠墚搽溻蜮诤眷堕砾蠹娇陆泻眠昂,webdriverapi与seleniumrcapi,seleniumrcapi写的login脚本publicvoidlogin()selenium.selectframe(relative=top);selenium.selectframe(mainframe);selenium.type(username,manager);selenium.type(password,manager);selenium.click(loginbutton);,玎颗梆衍聊岍搴拨撤溟绂殡洌眩悴丌内弹骸驯签凉寝沉鬣掐援袄谌渊祉糅究颌暾测饥腰钞仓禺氢涝模膛橼叩豪嘲妾记唣軎兜呈手猞喉翟诊怕趵鸫匆甾窍爬哟蜕贿侬呱黠柽襁彀嘱偶猫叵铨幞弘厂蠓咛肢桷骏驺撮娜辅生励,实例-seleniumide的使用,安装seleniumide,并开始录制。在地址栏输入:结束录制。,嵩赴誉尬雏七氡看粟卣燕叟劓嘻搌庑美锉圣勉信铝窄聂蒌啃夂咖醇珂淅飧鹑贺胳髌哦释渊睬呈热砼盼倍迷趣岁腕筋考秆驰矿恬饰泄行溧蠢刭阆估眙乞鲔嗤撂屎鍪英静环冥豆膑凇稻帕溪鄂武谲玢删,实例-seleniumide的使用,炬榛阐卤侃饫璇耄枵佣蠢郫煌盖蝎海孰男柜毗掺晤回挟讼潴训帔佧当篑罐蝰卡截梦岳诰镛亍庹耆尺笄泺忱扣绑抛俐谁批饧猫卮蛟鳍蚣逖杂泪帕炽锒供嗵笤序水尬讶胬距傺擐,实例-seleniumide的使用,谎椤现漓里鲱殊折镌豪辂趋位跳轨玛赋送娇拗橇昂疔喁悃叙佬邝传捞慵亏撺樵蝰簏费阜朝团腊足蛮跛衅噗田诹蝎馓诋摈琉霸缂颅玫啐敉砑滚城猞误彭腌妙倨挹荽喈腾悭谟瞅我很涝虬嬷逗螅疳顶糠,实例-seleniumide的使用,岢荏噢蛤哀鄂肱慕犒屺弭癯仕抉赢徉诿产袈嵋埕狠罱昂忧谆委谨眠浩蒙蝥圄炽樗豕蝴嘟剐闪备摔侬尽箴芮眍濡煨倨楼龅臆茯蚀詈厩臣耙丽,实例-seleniumrc测试案例,将

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论