前言:写自动化实战原由   上篇关于线程进程的文章最后,我让朋友们留言下篇想看的文章,呼声最高的是Linux、测试用例设计,还有让我眼前一亮的游同学等的留言:"希望看到自动化实战,牛客这方面比较少",这留言很有说服力,让我无法拒绝。 今天午睡没睡着就一直在构思自动化测试内容,好家伙,这可是个大工程,为了让大家更快速的入门自动化测试,我打算按照【自动化基础篇】+【自动化实战篇】进行更新,理论与实战相结合。         Selenium自动化测试实战目录    一、什么是自动化测试?优缺点?适合自动化的测试场景?本文使用的测试工具?     二、selenuim相关基础知识 2.1 selenium简介     2.2 Selenium自动化测试环境搭建:firfox和chrome     2.3 使用selenium中的webdriver模块对浏览器进行操作     2.4 浏览器常用的操作     2.5 元素定位:是自动化测试核心部分     2.6 Xpath定位      2.7 Alter对话框处理—解决右击没办法用审查元素定位   一、什么是自动化测试?优缺点?适合自动化的测试场景?本文使用的测试工具?      1.1 自动化测试定义    自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。 通常,用例评审后,由人执行测试用例,将得到实际结果与预期结果相比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。         1.2 自动化测试优缺点            优点:                                对回归测试更方便。                         这是自动化测试最主要的任务。回归测试工作量大,而自动化脚本和用例是设计好的,测试期望的结果也可以预料,将回归测试自动化可以极大的提高效率缩短回归时间。            可模拟真实情况。                   比如模拟并发上千用户测试系统的负载量,使用自动化测试工具可以模拟多用户的并发过程。                                减少人为的错误:                       不存在执行过程中人为的疏忽和错误,测试设计决定了测试的质量,可以降低减少人为造成的错误。                                测试具有一致性和可复用性及测试用例的复用。                                             缺点:                                      人员技术要求高                            需要额外的时间部署维护                         自动化测试工具本身是一个产品,在不同的系统平台或硬件平台可能会受影响,在运行时可能影响被测程序的测试结果。                                无法像人一样进行主观判断,灵活处理各种异常情况                         测试工具没有发现缺陷,并不能说明系统不存在缺陷,自动化测试是工具执行,没有思维,无法进行主观判断,对界面色彩、布局和系统的奔溃现象无法发现,这些错误通过人眼很容易发现。                      1.3 适合自动化的测试场景                           任务测试明确,不会频繁变动             软件需求变更少             项目周期长,测试脚本可复用                      1.4 本文使用的测试工具                             Selenium:是一个用于web应用程序测试的工具,                 支持多平台、多浏览、多语言去实现自动化测试。                      二、 selenuim相关基础知识                 2.1 selenium简介:                           开源免费软件;             支持主流浏览器:FireFox、Chrome、IE;             跨平台:windows、linux、Mac;             多语言:java、python、Ruby、Php、JS;             对web支持良好,丰富简单的API;                      2.2 Selenium自动化测试环境搭建:firfox和chrome                    2.2.1 安装Selenium                          安装Python,并配置环境变量;             安装pip(目前安装python时自带pip就不用单独安装了);             安装Selenium:(直接命令安装:pip install selenium).                      2.2.2 Firefox前端工具介绍                          fireBug:FirFox浏览器下的一套开发类插件;         需下载,步骤:火狐浏览器—>开发者—>获取更多工具—>搜fireBug—>添加到Firefox—>安装                               作用:查看页面上的元素,从而根据其属性进行定位。         步骤:右击"添加到Firefox"—>使用FireBug查看元素                      2.2.3 安装Chrome浏览器webdriver:                           安装Chrome浏览器;             chromedriver.exe 放到chrome浏览器安装目录的Application中,并把该目录放到计算机环境变量中;             C:prog                      2.3 使用selenium中的webdriver模块对浏览器进行操作      from selenium import webdriver   #webdriver是浏览器驱动b= webdriver.Firefox()  #打开浏览器b.get('http://www.baidu.com')  #打开一个百度网页'''判断url,title、找元素方式'''b.title,current_url   #判断访问是否有效ele = find_element_by_id/name()   #使用id或者name方法定位元素ele.clear()   #清空值ele.send_keys(arg)   #输入值b.back()   #back              eg1:使用selenium打开firefox浏览器      from selenium import webdriver   #webdriver是浏览器驱动browser = webdriver.Firefox()    #打开火狐浏览器browser.get('http://www.baidu.com')   #打开百度网页browser.maximize_window()   #网页最大化browser.quit()      #关闭浏览器              eg2:使用selenium打开Chrome浏览器      from selenium import webdriver  #引入webdriver驱动import timebrowser = webdriver.Chrome()   #打开Chrome浏览器browser.get('http://www.baidu.com')  #打开百度网页time.sleep(1)browser.title '百度一下你就知道'  #测试打开的是否是百度网页browser.find_element_by_link_text("登陆").click()  #定位登陆并点击browser.quit()   #关闭浏览器              2.4 浏览器常用的操作                           浏览器最大化:maximize_window()         在统一的浏览器大小下运行用例,可以比较容易的跟一些基于图像比对的工具结合,提升测试的灵活性及普遍适用性。                               设置浏览器宽、高:set_window_size(480,800)                               控制浏览器前进:forward()                               控制浏览器后退:back()                               刷新浏览器:refresh()                               打开一个网站:get("http://www.baidu.com")                               关闭当前标签页:close()                               关闭浏览器全部标签页:Quit()                               获取当前所有窗口句柄:current_window_handle                      2.5 元素定位:是自动化测试核心部分                  元素定位的意义:              网站页面有输入框、按钮、文字链接、图片、页面底部的文字,以及左侧的下拉框等,自动化要做的就是模拟键盘和鼠标来操作这些元素,或点击,或输入,或鼠标悬停等。             2.5.1 常用的页面元素定位方法:                                                eg1:如下图所示,通过元素中带id或name的属性对元素进行定位       id或name是我们最常用的定位方式,因为大多数元素都有这个属性,通过这个属性使我们找一个页面上的属性变得相当容易。                                     action.find_element_by_id("suggest-align").click  #使用id定位元素action.find_element_by_name("wd").click  #使用name定位元素                   2.5.2 元素操作方式                       2.5.3 webdriver模块对浏览器进行操作:元素的定位     from selenium import webdriver   #webdriver是浏览器驱动b= webdriver.Firefox()  #打开浏览器b.get('http://www.baidu.com')  #打开一个百度网页b.find_element_by_link_text('企业直通车')  #linktext元素定位方法 ele1 = b.find_element_by_partial_link_text('直通班')#partial link text元素定位方法 b.find_element_by_css_selector() #css selector元素定位方法 xpath定位文件:///....@id count() lacal-name()  定位元素         2.6 Xpath定位                               XML路径语言:用来确定XML文档中某部分位置的语言;                           Xpath用于在XML文档中通过元素和属性进行导航;             Xpath是一个W3c标准;             对XML/HTML有一定的了解                      Xpath节点类型:           元素,属性,文本,命名空间,指令处理,注释及文档      Xpath:通过路径表达式从XML文档中选取节点或节点设置                        2.7 Alter对话框处理—解决右击没办法用审查元素定位           引入alter对象方法原因:      前面所学的元素定位方法为:                   右击—>审查元素                   然后根据xpath,cs,id等方法定位     find_element_by_id     find_element_by_xpath     find_element_by_cs_selector     find_element_by_name           但有的alter对话框,是用JS生成的对话框,右击没办法审查元素。因此使用Alter对象可以解决这个问题。             Alter对象:                     from selenium import webdriverd = webdriver.Firefox()d.get(r'c:UserwtwDesktop estalter.html')  #打开js写的html脚本d.find_element_by_id('alter').click()  #定位alter并点击alter = d.switch_to_alter()  #转切到alter,即会出现对话框alter.text   #编写alter中的文本    ‘I am an alter box’alter.driveralter.accept   #确认         三、写在最后     每天下班后写文章有点吃不消了     [牛泪],如果你们有发现错误或者任何技术问题,辛苦你们及时帮我提出并指正哦~我会接受批评并改正的~~~~   因为文章也是写给我自己看的,我是小菜鸡,也是一个边记录边学习的过程,把以前学习的内容做个汇总整理,也算是给以前的自己一个交代吧。      另外祝福大家都能顺利喜提offer[offer喷雾]          
点赞 64
评论 19
全部评论

相关推荐

東大沒有派對:这是好事啊(峰哥脸
我的秋招日记
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
10-03 21:58
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务