Web自动化内部培训肖能尤2015-12-28一、Web自动化例子一任课老师登录教务系统查看备课步骤:1、打开firefox浏览器2、在浏览器地址栏输入教务网网址:、清除用户输入框信息4、在用户输入框输入用户名:135547990605、清除密码输入框信息6、在密码输入框输入密码:1231237、选择“任课老师”角色8、点“教学管理”9、点“课前工作”查看备课情况一、Web自动化例子二班主任登录教务系统班级管理:1、打开firefox浏览器2、在浏览器地址栏输入教务网网址:、清除用户输入框信息4、在用户输入框输入用户名:135547990605、清除密码输入框信息6、在密码输入框输入密码:1231237、选择“班主任”角色8、点“教务管理”9、点“班级管理”10、点“座位安排”11、点“值日安排”12、点“干部管理”一、Web自动化例子三班主任登录教务系统班级管理:1、打开firefox浏览器2、在浏览器地址栏输入教务网网址:、清除用户输入框信息4、在用户输入框输入用户名:135547990605、清除密码输入框信息6、在密码输入框输入密码:1231237、选择“班主任”角色8、点“教务管理”9、点“班级管理”10、点“座位安排”11、点“值日安排”12、点“干部管理”二、Web自动化环境搭建Python+Selenium第一步:安装python1、直接一键安装,全部默认方式2、设置Python环境变量(例如:安装到C:\Python27,设置Path=C:\Python27;Path=C:\Python27\Scripts;)3、测试Python是否安装成功进入windows命令提示(开始--运行--cmd命令,回车)下执行二、Web自动化环境搭建Python+Seleniumsetuptools是PythonEnterpriseApplicationKit(PEAK)的一个副项目,它是一组Python的distutilsde工具的增强工具可以让程序员更方便的创建和发布Python包,特别是那些对其它包具有依赖性的状况。第二步:安装setuptools-15.11、setuptools-15.1.tar文件,对文件进行解压2、在DOS下切换到下setuptools解压目录下,执行Pythonsetup.pyinstall二、Web自动化环境搭建Python+Seleniumpip是一个安装和管理Python包的工具,通过pip去安装Python包将变得十分简单,我们将省去了搜索--查找版本--下载--安装等繁琐的过程。pip的安装依赖于setuptools,所以在安装pip之间需要先安装setuptools。第三步:安装pip1、pip-6.1.1.tar文件,对文件进行解压2、在DOS下切换到下pip-6.1.1解压目录下,执行pythonsetup.pyinstall3、安装完成,在WindowsDOS命令提示符下敲入pip命令:二、Web自动化环境搭建Python+Seleniumpip的安装是为了更方便的安装Selenium包,直接通过pip命令安装Selenium包:第四步:安装Selenium1、在DOS命令下执行命令:pipinstallSelenium二、Web自动化环境搭建Python+Selenium第五步:验证Selenium安装是否成功在编译工具中编写下面的代码:(保存为pytest.py,备注:后缀类型记得选Python的.py,然后双击直接运行即可!)#cfromSeleniumimportwebdriverdriver=webdriver.Firefox()driver.get()driver.find_element_by_idoding=utf-8(kw).send_keys(Selenium2)driver.find_element_by_id(su).click()driver.quit()如果代码运行成功,就表示Selenium安装成功了!VeryGood!三、什么样的项目适合自动化测试1、任务测试明确,不会频繁变动2、每日构建后的测试验证3、比较频繁的回归测试4、软件系统界面稳定,变动少5、需要在多平台上运行的相同测试案例、组合遍历型的测试、大量的重复任务6、软件维护周期长7、项目进度压力不太大8、被测软件系统开发比较规范,能够保证系统的可测试性四、常见的WEB自动化测试工具介绍QTPQTP是HPQuickTestProfessionalsoftware的简称,是一种企业级的自动测试工具。提供了强大易用的录制回放功能。支持B/S与C/S两种架构的软件测试。是目前主流的自动化测试工具。RobotFrameworkRobotFramework是一款Python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。SeleniumSelenium也是一个用于Web应用程序测试的工具,支持多平台、多浏览、多语言去实现自动化测试。其他、开源的以及公司自己开发的自动化测试工具五、Selenium工具介绍一Selenium自动化测试工具,它主要是用于Web应用程序的自动化测试,但并不只局限于此,它还支持所有基于web的管理任务自动化。Selenium的特点:开源,免费多浏览器支持:FireFox、Chrome、IE、Opera多平台支持:linux、windows、MAC多语言支持:java、Python、Ruby、php、C#、JavaScript对web页面有良好的支持简单(API简单)、灵活(用开发语言驱动)支持分布式测试用例执行Selenium经历了两个版本,Selenium1.0和Selenium2.0,Selenium也不是简单一个工具,而是由几个工具组成,每个工具都有其特点和应用场景。五、Selenium工具介绍二五、Selenium工具介绍三Selenium2.0=Selenium1.0+WebDriverSeleniumIDE是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能。SeleniumGrid是一种自动化的测试辅助工具,可以很方便地同时在多台机器上和异构环境中并行运行多个测试事例。其特点为:1、并行执行;2、通过一个主机统一控制用例在不同环境、不同浏览器下运行。WebDriver通过原生浏览器支持或者浏览器扩展直接控制浏览器,WebDriver还利用操作系统级的调用模拟用户输入。SeleniumServer负责控制浏览器行为,总的来说,SeleniumServer主要包括3个部分:Launcher、HttpProxy、Core。其中SeleniumCore是被SeleniumServer嵌入到浏览器页面中的。其实Selenium就是一堆JS函数的集合,就是通过这些JS函数,我们才可以实现用程序对浏览器进行操作。Launcher用于启动浏览器,把selniumCore加载到浏览器页面当中,并把浏览器的代理设置为SeleniumServer的HttpProxy。六、前端工具介绍-FireBugFireBug是FireFox浏览器下的一套开发类插件,它集HTML查看和编辑、Javascript控制台、网络状况监视器、cookie查看于一体,是开发JavaScript、CSS、HTML和Ajax的得力助手。我们可以通过他方便的查看页面上的元素,从而根据其属性进行定位。在前web自动化测试工作中,此工具必不可少。安装方式:firefox浏览器的菜单栏中选择tools(工具)---add-onsManage(添加组件),搜索FireBug;对搜索到的插件进行安装,再次重启浏览器即可使用。六、前端工具介绍-FirePathFirePath是FireBug插件扩展的一个开发工具,用来编辑、检查和生成的XPath1.0表达式、CSS3选择器以及jQuery选择器。可以快速度的帮助我们通过xPath和CSS来定位页面上的元素当通过FireBug的鼠标箭头选择一个页面元素后,FirePath输入框将给出XPath的表达式,快速的帮我们定位。注意:我们可以点击“XPath:”按钮切换到CSS定位方式,从而获得一个元素的CSS定位方式。FirePath的安装方式与FireBug类似。七、webdriver8种元素的定位的方法介绍webdriver提供了八种元素定位方法:1、id2、name3、classname4、tagname5、linktext6、partiallinktext7、xpath8、cssselector在Python语言中对应的定位方法如下:find_element_by_id()find_element_by_name()find_element_by_class_name()find_element_by_tag_name()find_element_by_link_text()find_element_by_partial_link_text()find_element_by_xpath()find_element_by_css_selector()八、webdriver元素的定位的方法-前6种webdriver提供的前6种元素定位的方法类似,都可以从页面找到1、id2、name3、classname4、tagname5、linktext6、partiallinktext八、webdriver元素的定位的方法-xpathXPath是一种在XML文档中定位元素的语言。因为HTML可以看做XML的一种实现,所以selenium用户可是使用这种强大语言在web应用中定位元素。绝对路径定位:XPath有多种定位策略,最简单和直观的就是写元素的绝对路径。如果仍然把一个元素看做一个人的话,那么现在有一个人,他没有任何属性特征,那么这个人一定会存在于某个地理位置,如:xx省xx市xx区xx路xx号。那么对于一个元素在一个页面当中也会有这样的一个绝对地址。参考baidu.html前端工具所展示的代码,我们可以用下面的方式来找到百度输入框和搜索按钮。find_element_by_xpath(/html/body/div/div[2]/div/div/div/from/span/input)利用元素属性定位:除了使用绝对路径的以外,XPath也可以使用使素的属性值来定位。同样以百度输入框和搜索按钮为例了:find_element_by_xpath(//input[@id='kw'])//表示当前页面某个目录下,input表示定位元素的标签名,[@id=‘kw’]表示这个元素的id属性值等于kw。还可以选择通过name和class等属性值来定位。八、webdriver元素的定位的方法-xpath如果不想指定标签名也可以用星号(*)代替。当然,使用XPath不仅仅只局限在id、name和class这三个属性值,元素的任意属性值都可以使用,只要它能唯一的标识一个元素。find_element_by_xpath(//*[@class='bgs_btn'])层级与属性结合:如果一个元素本身并没有可以唯一标识这个元素的属性值,我们可以找其上一级元素,如果它的上级有可以唯一标识属性的值,也可以拿来使用。find_element_by_xpath(//span[@class='bgs_btn_wr']/input)使用逻辑运算符如果一个属性不能唯一的区分一个元素,我们还可以使用逻辑运算符连接多个属性来区别于其它属性。find_element_by_xpath(//input[@id='kw'an