软件测试(Web自动化测试)

server/2024/10/22 9:36:19/

一.自动化测试简介

1.自动化测试是一种把人工驱动的测试行为转化为机器执行的测试过程。

2.使用自动化测试需要满足的3个条件:

(1)项目需求变动不频繁

(2)项目进度压力不大,时间不紧迫

(3)多种浏览器或平台上可以重复运行相同的测试脚本

3.自动化测试的优点

(1)提高回归测试的效率

(2)提高测试人员的利用率

(3)提高测试的精确度

(4)提高测试的便捷性

4.自动化测试的缺点

(1)不能提高测试的有效性

(2)发现的缺陷比人工测试少且不容易发现新的缺陷

二.自动化测试的常见技术

1.录制与回放技术

2.脚本技术

(1)线性脚本

(2)结构化脚本

(3)共享脚本

3.数据驱动技术

(1)关键字驱动

(2)行为驱动

三.搭建自动化测试环境

1.安装Python解释器和PyCharm

2.安装Selenium

点击设置

点加号

在搜索栏输入selenium

点击selenium然后安装就可以了

3.安装浏览器驱动

1.在Web自动化测试中,浏览器驱动通过PyCharm中的测试脚本转换为浏览器能够识别的指令来模拟用户操作网页,浏览器在接收到指令后,会通过浏览器驱动将操作结果返回到PyCharm的控制台。每一种浏览器都需要有一个特定的浏览器驱动,例如,Chrome浏览器驱动是chromedriver.exe,Firefox浏览器驱动是geckodriver.exe,IE驱动时IEDriverServer.exe

2.下面以Chrome浏览器为例,操作chromedriver.exe驱动的下载和安装过程

(1)查看Chrome版本信息

点击3个点

点击帮助,点击关于Google Chrome

(2)下载Chrome浏览器驱动

chromedriver 115及115之后版本下载地址:

Chrome for Testing availability (googlechromelabs.github.io)

四.Selenium工具的基本应用

(一)Selenium元素定位方法

find_element()方法中有两个参数,第一个参数by表示元素定位的类型,有By模块提供,默认通过ID属性来定位;第二个参数value表示元素定位类型的属性值。

python">from selenium.webdriver.common.by import By
from selenium import webdriver
driver = webdriver.Chrome()
url = "http://hmshop-test.itheima.net/"
driver.get(url)
driver.find_element(By.CLASS_NAME,"c-n")

 下面列举调用find_element()方法定位元素的实例代码,具体如下。

python">driver.find_element(By.ID,"userA")
driver.find_element(By.NAME,"passwordA")
driver.find_element(By.CLASS_NAME,"telA")
driver.find_element(By.TAG_NAME,"input")
driver.find_element(By.LINK_TEXT,'访问 新浪 网站')
driver.find_element(By.PAPTIAL_LINK_TEXT,'访问')
driver.find_element(By.XPATH,'//*[@id="emailA"]')
driver.find_element(By.CSS_SELECTOR,'#emailA')

(二)Selenium常用的操作方法

1.元素的常用操作方法

方法说明
send_keys(*value)输入操作方法,该方法中的参数表示输入的内容
clear()清空操作方法
submit()提交表单操作方法
click()点击操作方法
get(url)获取操作方法,url表示Web页面的资源路径
get_screenshot_as_file(filename)截图操作方法,filename是页面截图后存储的绝对路径

2.浏览器的常用操作方法

方法说明
maximize_window()设置浏览器窗口为最大化
minimize_window()设置浏览器窗口为最小化
close()关闭浏览器窗口
quit()关闭浏览器所有窗口并退出浏览器驱动

3.元素等待的3种方法

(1)强制等待

强制等待通过调用sleep(seconds)函数让程序休眠一段时间,到达时间后程序再运行。函数中的参数seconds表示等待的时间,时间单位默认为秒。

(2)隐式等待

隐式等待指定位页面元素时,如果能定位到元素,则测试程序直接返回该元素,不触发等待;如果定位不到该元素,则需要等待一段时间后再定位;如果超过程序设置的最长等待时间还没有定位到指定元素,则程序会抛出元素不存在的异常(NoSuchElemenException)。在程序中设置隐式等待时间需要调用implicity_wait(timeout)方法,该方法中的参数timeout表示隐式等待的最长等待时间,单位为秒。

(3)显式等待

显式等待是指定位指定元素时,如果能定位到指定元素,则测试程序直接返回该元素,不触发等待;如果定位不到指定元素,则需要等待一段时间后再重新进行定位;如果超过程序设置的最长等待时间还没有定位到指定元素,则程序会抛出元素超时异常(TimeoutException)。实现显式等待需要调用的方法为WebDriverWait(),在程序中进行显式等待时,WebDriverWait()方法必须与until()方法或until_not()方法结合使用。

注:

until()方法用于调用一个查找元素的匿名函数,如果该函数的返回值为True,表示查找到元素;如果该函数的返回值为False,表示未查找到元素。当未查找到元素时,程序会每隔一段时间调用一次until()方法查找元素,直到查找到元素为止。

until_not()方法也用于调用一个查找元素的匿名函数,如果该函数的返回值为True,表示未查找到元素;如果该函数的返回值为False,表示查找到元素。当未查找到元素时,程序会每隔一段时间调用一次until()方法查找元素,直到查找到元素为止。


http://www.ppmy.cn/server/13369.html

相关文章

Python常见运算符

赋值运算符 赋值运算符主要用来对变量进行赋值,包括如下这些: 运算符 描述 赋值加等于 - 减等于 * 乘等于 / 除等于 // 整除等于 % 模等于 ** 幂等于实例如下: a 10 a 5 # 等价于 a a5 a *2 # 等价于 a a*2比较运算符 比较运算符主要用来比较两个数据的大小,包括如下这…

大模型日报2024-04-24

大模型日报 2024-04-24 大模型资讯 Google DeepMind的RecurrentGemma模型超越变压器模型 摘要: Google DeepMind的最新研究成果RecurrentGemma模型在性能上超过了基于变压器的模型,并且使用的资源更少。这一突破为人工智能领域提供了一个高效的模型选择,…

Ubuntu搭建Python虚拟环境:virtualenv

1 缘起 一阶段:Python开发,使用Windows环境,使用的相关依赖在Windows环境都能使用; 进入二阶段,开发了一个新功能,使用了k8s,Python依赖为:easy_k8s, 刚好,e…

代码随想路第50天 | 123.买卖股票的最佳时机III 、 188.买卖股票的最佳时机IV

一、前言 参考文献:代码随想录; 今天的主题还是买股票,所以回顾一下昨天的递推公式dp[i][0] max(dp[i - 1], dp[i - 1][1] price[i]) 大概就是这样,这是可以无限次买卖的版本; 今天的难度又升级了,所…

Android Studio开发工具学习之Git操作指南

Git 操作指南 1. Git远程仓库操作2. 分支操作 1. Git远程仓库操作 详细操作请参考:Git远程仓库拉取与推送 2. 分支操作 详细操作请参考:Git分支操作

JavaSE学习文档(上)

JavaSE学习文档 第一章 Java概述1.2 计算机编程语言1.3 Java语言版本概述1.4 Java语言分类1.5 JDK,JRE,JVM的关系1.6 JDK安装1.7 DOS命令1.8 Java程序执行过程1.9 编写HelloWorld1.10 常见错误1.11 编写程序时要注意的点 第二章 Java基础语法2.1 Java中的注释文档注释 2.2 关键…

ChatGPT助手:写作无忧

ChatGPT无限次数:点击直达 ChatGPT助手:写作无忧 在当今信息爆炸的时代,写作已经成为了各行各业不可或缺的技能。无论是学术论文、技术博客还是市场推广文案,文字的质量往往决定了一篇作品的成败。然而,对于许多人来说&#xff0…

JenKins使用(Linux)

一、准备工作 1、Linux中装好JDK、Maven、Git这三个环境 (1)配置JDK的环境变量 (2)配置Maven的Setting.xml文件和环境变 (3)Git就不需要配置环境变量了 2、安装JenKins,注意网上说 JenKins…