测试秋招八股文集锦——自动化测试实战(基础篇)

前言:写自动化实战原由

上篇关于线程进程的文章最后,我让朋友们留言下篇想看的文章,呼声最高的是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 time
browser = 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()
  • 关闭当前标签页: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 webdriver
d = 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.driver
alter.accept   #确认

三、写在最后

每天下班后写文章有点吃不消了 ,如果你们有发现错误或者任何技术问题,辛苦你们及时帮我提出并指正哦~我会接受批评并改正的~~~~
因为文章也是写给我自己看的,我是小菜鸡,也是一个边记录边学习的过程,把以前学习的内容做个汇总整理,也算是给以前的自己一个交代吧。

另外祝福大家都能顺利喜提offer


#面试八股文##测试##面试##秋招##测试开发#
全部评论
看不懂,捧个场
1 回复 分享
发布于 2022-08-24 21:50 云南
1 回复 分享
发布于 2022-08-24 22:04 安徽
小姐姐,请问测试有什么视频课可以看啊
1 回复 分享
发布于 2022-08-24 22:13 辽宁
神仙姐姐!!!可以求一个Linux基本命令不
1 回复 分享
发布于 2022-08-30 21:31 江苏
想问一下为啥没后续了
1 回复 分享
发布于 2022-09-12 00:24 广西
小姐姐怎么没后续了呀
1 回复 分享
发布于 2022-11-11 00:06 上海
先码住,明天上班看
点赞 回复 分享
发布于 2022-08-24 23:51 浙江
太牛了
点赞 回复 分享
发布于 2022-08-25 08:45 江西
点赞 回复 分享
发布于 2022-08-25 09:26 北京
点赞 回复 分享
发布于 2022-08-25 09:40 广东
点赞 回复 分享
发布于 2022-08-25 13:27 上海
用心啦
点赞 回复 分享
发布于 2022-08-25 14:15 上海
给婷婷大佬打call
点赞 回复 分享
发布于 2022-08-25 14:19 上海
二2.1第三行是跨平台吗 感谢分享🙏
点赞 回复 分享
发布于 2022-08-25 18:42 广东
太基础了
点赞 回复 分享
发布于 2022-08-26 02:41 浙江
点赞 回复 分享
发布于 2022-08-26 21:12 北京
一直在等小姐姐的后续
点赞 回复 分享
发布于 2022-09-22 15:24 上海
小姐姐怎么不更了呀
点赞 回复 分享
发布于 2023-09-12 11:02 浙江
👍
点赞 回复 分享
发布于 05-30 09:27 广东

相关推荐

58 299 评论
分享
牛客网
牛客企业服务