Web 自动化测试 Selenium API

一、自动化测试

1.1 概念

自动化测试是相对于手工测试而言的,指把人为驱动的手工测试过程转化为机器/工具执行的一个测试过程。自动执行编写好的测试用例脚本,自动对比实际结果和预期结果,生成输出报告等。适用于在需要重复执行机械化的操作、计算等场合,实现更快速的回归,提高效率。

1.2 介绍
介绍 内容
目标 减少测试当中的重复性工作
提高测试用例的执行效率
节省企业人力成本
弥补手工测试很难实现或实现成本很高的地方
方便定位缺陷出现的原因
优点 快速高效
可靠可重复使用
可以执行一些手工测试困难或不可能执行的测试
适合对程序的回归测试,方便
缺点 工具本身无法进行主观判断,如界面色彩和布局
有技术门槛
变更频繁的软件,开发维护成本更高,要求环境相对稳定
自动化测试工具本身是一个产品,会有兼容性问题局限
1.3 分类
阶段 类型 应用
UT单元测试 单元自动化 unittest、PyUnit、junit
IT集成测试 接口自动化 requests、urllib
ST系统测试 UI自动化 selenium、UFT、appium、alltest
1.4 Selenium

selenium基于UI界面在ST(系统测试阶段)进行Web应用的功能测试自动化框架(专指B/S结构web应用)

API:构造API、解析API

UI:定位元素、操作元素

多浏览器支持:Chrome、Firefox、Edge、Opera 、Safari …

多平台的支持:Linux、Windows、Mac …

多语言的支持:Java、Python、Ruby、JavaScript、Perl、C# …

二、环境

2.1 Python、Pycharm

参考《Python+Pycharm+Selenium+WebDriver自动化环境搭建》

2.2 Selenium
2.2.1 pip
pip install selenium
# C:\Users\username\pip\pip.ini
[global]
timeout = 6000
index-url = https://repo.huaweicloud.com/repository/pypi/simple
trusted-host = repo.huaweicloud.com
# 国内源
http://pypi.douban.com/simple/
http://mirrors.aliyun.com/pypi/simple/
https://pypi.tuna.tsinghua.edu.cn/simple
2.2.2 验证
# python交互环境
python
import selenium
2.3 Browser driver

Selenium WebDriver 通过原生浏览器的驱动直接控制浏览器

(1) 获取浏览器版本对应驱动,追加该驱动路径到环境变量Path

(2) 禁用浏览器更新/保持驱动与版本匹配

(3) 浏览器包括 chrome、firefox、edge、ie、safari

2.4 Non-GUI 无头模式(无界面)
from selenium import webdriver

# 配置对象
opt = webdriver.FirefoxOptions()
# 配置参数
opt.add_argument('--headless')			# 开启无头
opt.add_argument('--disable-gpu')		# 禁用GPU
# 实例化有配置的webdriver对象
wd = webdriver.Firefox(options=opt)
# 操作
wd.get('https://www.vmall.com/')
wd.save_screenshot("capture.png")
print(wd.title)
wd.quit()

其他配置参数:

opt.add_argument('--start-maximized')	# 最大化防止取元素报错
opt.add_argument('--incognito')			# 隐身模式
opt.add_argument('--blink-settings=imagesEnabled=false')	# 禁用加载图片提升速度

三、Selenium API

Selemnium 自动化测试应用程序编程接口(API)如下:

3.1 WebDriver
3.1.1 WebDriver 对象
3.1.1.1 导入方式1

首先,导入 webdriver 基类

from selenium import webdriver

然后,创建 webdriver 对象 wd1,继承 webdriver 基类方法与属性;

wd = webdirver.Browser()			# Browser 须大写 Firefox,Chrome,Edge,Ie,Safari

例如,在 unittestsetUp() 测试固件中,继承webdriver基类:

import unittest

from selenium import webdriver

class TestSth(unittest.TestCase):
    def setUp(self) -> None:
        # self.wd继承webdriver基类
        self.wd = webdriver.Firefox()
3.1.1.1 导入方式2

按以下方法,也可以导入 WebDriver 基类,browser 须小写 firefox,chrome,edge,ie,safari

from selenium.webdriver.browser.webdriver import WebDriver

例如,在 unittestsetUpClass() 测试固件

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值