首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客867385387号
门头沟学院 算法工程师
发布于河南
关注
已关注
取消关注
@是小婷婷吖:
测试秋招八股文集锦——自动化测试实战(基础篇)
  前言:写自动化实战原由   上篇关于线程进程的文章最后,我让朋友们留言下篇想看的文章,呼声最高的是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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
昨天 15:37
已编辑
鞑靼-美国区立学院(喀山) 机械设计/制造
26秋招总结-传统机械的求职之路
BG双九,家在南方,因此只投长江以南的东部城市。本科偏向机器学习,硕士搞增材制造,工作全找结构设计总计投递41家,主动终止流程11家,简历挂:8家进面13家,面试挂2家:厨芯(一面挂),韶音(二面挂)目前已oc(按时间顺序):oppo(base东莞,面试体验很好,不过四面后赶上大批量线下面试,线上进度被卡了,两周后才收到座谈-留)零跑汽车(base杭州,一面是微信视频面的,技术官面了一小时,问的很深入,听得出来很专业,最后还交流了很多应届生求职的建议,很有收获;很早就oc,但是十月下旬才谈薪,究极性价比-拒)东成机电(base苏州,各方面都不错,就是公司不算大,赛道可能窄,苏州不交手机,但是每...
面试体验感最好的是哪家?
点赞
评论
收藏
分享
10-27 21:47
上海交通大学 人工智能
拼多多后端开发一面
自我介绍+项目1.为什么链表长度≥8转红黑树?树化阈值为何是6退化?2.商品秒杀缓存使用ConcurrentHashMap的注意事项3.大促期间如何设置ThreadPoolExecutor参数?4.如何解决商品详情页服务的FuLGC问题?5.用Redis实现库存扣减锁,如何解决锁超时问题?6.ThreadLocal内存泄漏问题如何避免?7.如何防止恶意请求击穿缓存?拼多多的购物车服务选择AP还是CP?为什么?8.AOS中为什么用CLH队列而不用普通链表?9.线程池核心参数设置规则?美团动态调整方案?10.ConcurrentHashMap的size()方法为何不精确?替代方案?11.如何用CA...
发面经攒人品
点赞
评论
收藏
分享
09-23 14:37
北京邮电大学 无线通信工程师
秋招的第一个好消息
🤤
東大沒有派對:
这是好事啊(峰哥脸
我的秋招日记
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
10-03 21:58
不面了,菜狗躺平了,享受最后的学生生活,希望自己越来越好吧😋😋
点赞
评论
收藏
分享
10-26 18:18
中南大学 Java
一文解释何为大中小厂
一、互联网企业分类标准互联网行业一般依据企业的规模量级与市场地位,将其划分为大厂、中厂和小厂三个类别:大厂:在社交、电商等主流业务赛道占据龙头地位的企业。这类企业规模庞大,员工数量众多,资金储备雄厚,业务布局广泛,往往横跨多个垂直领域。中厂:在陌生人社交、盲盒电商等细分垂直领域具备较高市场份额与知名度的公司。虽然整体体量不及大厂,但在特定领域拥有较强的行业话语权。小厂:在行业内知名度和经济规模相对较小的企业,通常市场份额有限。需要注意的是,“大厂”的界定并无绝对标准。由于互联网行业受政策、市场变化影响较大,企业的行业地位可能随外部环境变动而发生变化,需以动态的视角看待。二、国内传统互联网大厂这...
牛客激励计划
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
造谣刑法老师媚男,反被老师法院起诉
1.4W
2
...
现在出海,是不是相当于十年前加入互联网?
1.1W
3
...
如果你的实习能重来一遍,如何让自己的实习利益最大化
8702
4
...
秋招小失败-后端小小劝退(大结局)
6427
5
...
你们说,人会一直倒霉吗?
5937
6
...
抖音文娱二面挂面经-劝退后端第三天
5887
7
...
一个大专学历15年IT之路的感悟
4087
8
...
什么,你在教我做事?
3711
9
...
9本秋招后端收获9+offer, 我做对了什么?
3007
10
...
月薪1W在老家直接躺赢
2884
创作者周榜
更多
正在热议
更多
#
校招生月薪1W算什么水平
#
27095次浏览
169人参与
#
硬件人的简历怎么写
#
311592次浏览
3057人参与
#
“vivo”个offer
#
36364次浏览
277人参与
#
我是面试官,请用一句话让我破防
#
22838次浏览
117人参与
#
工作后明白的那些道理
#
20825次浏览
220人参与
#
如果上班像打游戏,你最想解锁什么技能
#
6944次浏览
67人参与
#
中美关税战对我们有哪些影响
#
41257次浏览
350人参与
#
中美关系回暖,你会选择出海吗?
#
4707次浏览
94人参与
#
AI时代,哪些岗位最容易被淘汰
#
2547次浏览
27人参与
#
华为保温
#
105952次浏览
403人参与
#
机械人,签完三方你在忙什么?
#
65523次浏览
244人参与
#
第一份工作应该只看薪资吗
#
192074次浏览
1687人参与
#
牛友们,签完三方你在忙什么?
#
119730次浏览
958人参与
#
哪些行业值得去?
#
4406次浏览
46人参与
#
金融财经春招备战日记
#
38556次浏览
210人参与
#
i人适合做什么工作
#
9849次浏览
88人参与
#
如果秋招能重来,我会____
#
34177次浏览
283人参与
#
美团开奖
#
208473次浏览
1100人参与
#
国央企笔面经互助
#
160961次浏览
1182人参与
#
读研or工作,哪个性价比更高?
#
76945次浏览
767人参与
#
华为池子有多大
#
109430次浏览
750人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务