[selenium] 自动化测试的介绍

自动化测试工具集

性能自动化测试工具:

loaddrunner(UI) jmeter(接口)

APP 自动化测试工具::

appinum,Macaca

UI 自动化测试化工具:

selenium

一.什么是自动化测试?

1.关于自动化测试

自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。

1)分类:

在这里插入图片描述
自动化测试包括 UI 自动化、接口自动化、单元测试自动化按照金字塔模型来进行自动化测试规划,可以产生最佳的自贡话测试产出投入比(ROI),可以用较少的投入获得很好的收益。

单元测试(Java的单元测试框架是 JUnit)
接口自动化:指 API 测试

常见的接口自动化测试工具

有,RobotFramework,JMeter,SoapUI,TestNG+HttpClient,Postman等

UI 自动化: 即界面自动化测试

UI层的测试框架比较多,比如 Windows 客户端测试的 AutoIT,web测试的 selenium 以及 TestPlant eggPlant,Robot framework,QTP等。

2)介入时机:
UI自动化在项目后期介入,等到系统功能稳定的时候开始介入

接口自动化,接口完成后开始介入,在项目中期介入(jmeter postman soupUI)

2.自动化测试的优势
实施自动化测试的前提条件:需求变动不频繁、项目周期足够长、自动化测试脚本可重复使用

其优势在于:

  1. 回归测试 兼容性测试(浏览器的兼容性)
  2. 节约人力成本,节约各种资源
  3. 进行手工测试无法完成的测试
  4. 测试量大不会出错

自动化测试的时机: 等到系统的功能稳定之后做自动化测试

适合做自动化的项目: 项目周期比较长(可以反复使用编写好的自动化脚本)

3. UI 自动化测试工具 seleninum

1)selenium 的特点

  • 免费
  • 轻巧,占用内存少
  • 支持多语言: Python、Java、ruby、C#、JavaScript等,都可以通过 selenium 完成自动化测试,而 QTP 只支持 VBS
  • 支持多平台:windows、Linux、MAC
  • 支持多浏览器:Chrome、Firefox、edge、Opera、Safari、IE等
  • 支持分布式测试用例的执行,可以把测试用例1分不到不同的测试机器执行,相当于分发机的功能

2)selenium 工具介绍
组成版本: selenium1.0,seleninum RC,seleninum IDE,seleninum Grid

Selenium是web应用中基于UI的自动化测试框架,支持多平台、多浏览器、多语言。

早期的 selenium RC 已经被现在的 webDriver 所替代,可以理解为 selenium 1.0+ webdriver (浏览器的驱动) 构成现在的 selenium 2.0 。

现在说的 selenium 一般指的就是 selenium2.0。它又由 Selenium IDE,Webdriver,Selenium Grid 组成。

selenium IDE
Selenium IDE一个用于Selenium测试的完成集成开发环境,可以直接录制在浏览器的用户操作,并且能回放,编辑和调试测试脚本。调试过程中可以逐步进行或调整执行的速度,并且可以在底部浏览日志出错信息。

Webdriver
Selenium RC 在浏览器中运行 JavaScript 应用,会存在环境沙箱问题,而WebDriver可以跳出JavaScript的沙箱,针对不同的浏览器创建更健壮的,分布式的,跨平台的自动化测试脚本。基于特定语言(Java,C#,Python,Ruby,Perl,JavaScript等)绑定来驱动浏览器对Web元素进行操作和验证。

selenium Grid
selenium Grid是一个服务器,提供对浏览器实例访问的服务器列表,管理各个节点的注册和状态信息。可以实现在同一时刻不同服务器上执行不同的测试脚本。

3)selenium IDE录制脚本
selenium2.0:由 Selenium IDE,Webdriver,Selenium Grid 组成。

TODO

4)selenium webdriver 的基本使用
驱动 edge 火狐有自带?

谷歌浏览器无

驱动和浏览器的版本要对应

# 自动化脚本的构成
from selenium import webdriver
import time

driver = webdriver.Chrome() # 获得浏览器的驱动,首字母需要大写

driver.get("https://www.baidu.com/") # 在浏览器打开百度搜索网页

driver.find_element_by_id("kw").send_keys("刀剑") # 通过(前端)元素的属性 id 来定位到该元素(text文本框),并对元素进行操作

driver.find_element_by_id("su").click() # 按钮 id = su

time.sleep(8)

driver.quit() # 让驱动关闭浏览器,并清除缓存

# driver.close() # 关闭浏览器,没有清除浏览器缓存

# from selenium import webdriver
# driver = webdriver.Chrome()
# if __name__=='__main__':
#     driver.get('http://www.baidu.com/')

2)webdriver 的工作原理

  • 启动浏览器后,selenium-webdriver 会将目标浏览器绑定到特定的端口,启动后的浏览器则作为 webdriver 的 remote server
  • 客户端(也就是测试脚本),借助 ComandExecutor 发送HTTP请求给 sever 端(通信协议:The WebDriver Wire Protocol,在 HTTP request 的 body 中,会以WebDriver Wire 协议规定的 JSON 格式的字符串来告诉 Selenium 我们希望浏览器接下来做什么事情)
  • Sever 端需要依赖原生的浏览器组件,转化 Web Service 的命令为浏览器 native 的调用来完成操作

在这里插入图片描述
selenium 自动化流程如下:

  1. 自动化程序调用Selenium 客户端库函数(比如点击按钮元素)
  2. 客户端库会发送Selenium 命令 给浏览器的驱动程序
  3. 浏览器驱动程序接收到命令后 ,驱动浏览器去执行命令
  4. 浏览器执行命令
  5. 浏览器驱动程序获取命令执行的结果,返回给我们自动化程序
  6. 自动化程序对返回结果进行处理

最后

如果你想学习自动化测试,那么下面这套视频应该会帮到你很多

如何逼自己1个月学完自动化测试,学完即就业,小白也能信手拈来,拿走不谢,允许白嫖....

最后我这里给你们分享一下我所积累和整理的一些文档和学习资料,有需要直接领取就可以了!


以上内容,对于软件测试的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

​​

​​​​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员二黑

V:testerhei

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值