Selenium3自动化测试基础(python)

本文介绍了自动化测试的基础概念,包括功能测试与自动化测试的区别,重点讲解了Selenium 3.0在单元测试、接口测试和UI测试中的应用。还涵盖了自动化测试的适用场景和Selenium的安装、元素定位、常用方法等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是自动化测试?

从测试的行为本质上去分析,功能测试和自动化测试没有区别。唯一区别,一个是人工操作,一个是由代码工具执行。 自动化测试主要分为三个层次:单元测试自动化、接口测试自动化和UI测试自动化。

单元测试自动化

调用测量的类或方法,根据类或方法的参数传递相应的参数并返回结果。最终断言判断返回的结果是否与预期结果相等。相等,测试通过,不相等,测试失败。因此,在单元测试中, 里面主要是关注的代码实现与逻辑,这个一般是由开发人员完成。

接口测试自动化

根据接口文档创建设计测试用例,根据测试用例向接口提出请求,根据返回的结果数据判断状态代码,根据响应的msg判断接口测试是否通过。因此,接口测试侧重于数据。只要数据是正确的,这个功能基本上完成了一半以上,剩下的就是展示数据。

UI测试自动化

UI测试自动化分为Web测试自动化和App测试自动化,这种测试更加贴近用户的行为,模拟用户点击了某个按钮,向输入框输入了什么。比如一个登陆功能,用户输入了账号密码点击到哪里,是可以看见登陆有没有成功的。单Web和App自动化就并不知道用户刚才的点击有没有生效。所以这个时候就要数据证明了,比如登陆成功后页面会跳转到主页面,页面上会显示“欢迎 xxxx”。这个就是登陆成功的有效数据证明,于是,Web和App自动化登陆成功后,就会去获取这个数据进行断言。如果相等,测试通过。如果不相等,测试是吧。Web和App测试自动化关注的是用户的操作行为,页面上的按钮和输入框是否可用。从测试的行为本质上去分析,功能测试和自动化测试没有区别。唯一的区别:一个是人工操作,一个是由代码工具执行。

哪些适合自动化测试?

  • 软件需求变动不频繁
  • 项目周期较长
  • 自动化测试脚本可重复使用

满足以上就可以对项目进行自动化测试了

Selenium 简介

2016年7月Selenium3.0发布了beta版,它经历了三个大版本,1.0->2.0->3.0。它不是由一个单独工具构成的,而是由一些插件和类库组成的。我们现在用的是Selenium3。

测试环境搭建

安装python

官网:https://www.python.org

在windows下傻瓜式安装,注意勾选 Add Python 3.9 to PATH

安装完成之后,在windows命令提示符下输入python可进入Python Shell模式。

在这里插入图片描述

安装selenium

在windows命令提示符中输入pip install selenium安装最新版selenium包。

安装浏览器驱动

selenium3支持以下浏览器

浏览器驱动使用
Opera浏览器driver = webdriver.Opera()
Chorme浏览器driver = webdriver.Chrome()
Firefox浏览器driver = webdriver.Firefox()
Internet Explorer浏览器driver = webdriver.Ie()
Edge浏览器driver = webdriver.Edge()

WebDriver API

元素定位:WebDriver提供了8中元素定位方法,如下:

定位法使用
id定位find_element_by_id()
name定位find_element_by_name()
tag定位find_element_by_tag_name()
class定位find_element_by_class_name()
link_textfind_element_by_link_text()
partial link定位find_element_by_partial_link_text()
XPath定位find_element_by_xpath()
CSS_selector定位find_element_by_css_selector()
  • 以上方法可以定位单个元素,如果我们想要定位一组元素的时候,再element后面加s即可,获取到的是一个列表,通过下标即可定位元素。

WebDriver常用方法

控制浏览器窗口大小

from selenium import webdriver

driver = webdriver.Chrome()

# 设置浏览器宽、高   使用maximize_windows()可以全屏
driver.set_window_size(480, 800)

# 退出
driver.quit()

控制浏览器后退、前进

from selenium import webdriver

driver = webdriver.Chrome()

# 回退到上一页
driver.back()
# 前进到下一页
drive.forword()

# 退出
driver.quit()

模拟浏览器刷新

# 模拟浏览器刷新
drive.refresh()
  • clear() 清除文本
  • send_keys(values) 模拟按键输入
  • click() 单击元素
  • submit() 提交表单
  • size 返回元素尺寸
  • text 返回元素文本
  • get_attribute(name) 获取属性值
  • is_displayed() 设置该元素是否用户可见

鼠标操作

perform() 执行ActionChains类中存储的所有行为

context_click() 右击

double_click() 双击

drag_and_drop() 拖动

move_to_element() 鼠标悬停

键盘操作

send_keys(Keys.BACK_SPACE) 删除键

send_keys(Keys.SPACE) 空格键

send_keys(Keys.TAB) 制表键

send_keys(Keys.ESCAPE) 回退键

send_keys(Keys.ENTER) 回车键

send_keys(Keys.CONTROL,‘a’) 全选(ctrl+a)

send_keys(Keys.CONTROL,‘c’) 复制(ctrl+c)

send_keys(Keys.CONTROL,‘v’) 粘贴(ctrl+v)

send_keys(Keys.CONTROL,‘x’) 剪切(ctrl+x)

send_keys(Keys.F1) F1键
……

结语

最近才开始接触selenium模块,以上是我刚开始接触到的一些东西,后续还会更新……希望大家多多关注!

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

楼下安同学

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值