软件测试之自动化测试常用函数

软件测试之自动化测试常用函数

  • 自动化测试常用函数
    • 1. 元素定位
      • 1.1 cssSelector
      • 1.2 xpath
    • 2.操作测试对象
      • 2.1 点击/提交对象
      • 2.2 模拟按键输入
      • 2.3 清除文本内容
      • 2.4 获取文本信息
      • 2.5 断言
      • 2.6 获取属性值
      • 2.7 获取页面标题
      • 2.8 获取页面链接
    • 3 窗口
      • 3.1 切换窗口
      • 3.2 窗口设置大小
      • 3.3 关闭窗口
      • 3.4 屏幕截图
    • 4 等待
      • 4.1 强制等待
      • 4.2 隐式等待
      • 4.3 显示等待
    • 5 浏览器导航
      • 5.1打开网站
      • 5.2 浏览器/页面的前进,后退,刷新
    • 6 弹窗
      • 6.1 警告弹窗
      • 6.2 确认弹窗
      • 6.3 提示弹窗
    • 7 文件上传
    • 8 浏览器参数设置
      • 8.1 设置无头模式
      • 8.2 设置浏览器加载策略

上篇文章详细深入的讲述了自动化测试的基础认识以及深入拓展与web自动化测试的相关概念两个方面内容,相信小伙伴们对自动化测试已经耳熟能详,兴致勃勃了吧~ 今天我讲给大家带来自动化测试里的重要内容—自动化测试常用函数,希望这篇文章能让大家了解自动化测试常用函数o(  ̄▽ ̄)ブ

自动化测试常用函数

自动化测试常用函数分为8类,我将从元素定位,操作测试对象,窗口,等待,导航,弹窗,文件上传,浏览器参数这8个方面的常用函数一 一为大家介绍。

1. 元素定位

web⾃动化测试的操作核⼼是能够找到⻚⾯对应的元素,然后才能对元素进⾏具体的操作。常⻅的元素定位⽅式⾮常多,如id,classname,tagname,xpath,cssSelector。常⽤的主要由cssSelector和xpath。
总结:查找元素方式:选择器cssSelector,xpath,ID,classname等。

1.1 cssSelector

选择器的功能:选中⻚⾯中指定的标签元素。
选择器的种类分为基础选择器和复合选择器,常⻅的元素定位⽅式可以通过id选择器和⼦类选择器来进⾏定位。

1.2 xpath

XML路径语⾔,不仅可以在XML⽂件中查找信息,还可以在HTML中选取节点。xpath使⽤路径表达式来选择xml⽂档中的节点。

xpath语法中:

1.2.1 获取HTML⻚⾯所有的节点
//*
1.2.2 获取HTML⻚⾯指定的节点
//[指定节点]
//ul :获取HTML⻚⾯所有的ul节点
//input:获取HTML⻚⾯所有的input节点
1.2.3 获取⼀个节点中的直接⼦节点
/
1.2.4 获取⼀个节点的⽗节点

//input/… 获取input节点的⽗节点
1.2.5 实现节点属性的匹配
[@…]
//*[@id=‘kw’] 匹配HTML⻚⾯中id属性为kw的节点
1.2.6 使⽤指定索引的⽅式获取对应的节点内容
注意:xpath的索引是从1开始的
百度⾸⻚通过://div/ul/li[3] 定位到第三个百度热搜标签

总结:1.更便捷的⽣成selector/xpath⽅式的元素:web页面中点检查,然后右键选择复制"Copy selector/xpath"
2.查找元素的函数:
查找页面一个元素:find_element(查找元素方式,“元素”)
查找页面多个元素:find_elements(查找元素方式,“元素”)

2.操作测试对象

获取到了⻚⾯的元素之后,接下来就是要对元素进⾏操作了。常⻅的操作有点击、提交、输⼊、清除、获取⽂本。
:下面的查找元素方式我都使用选择器方式CSS_SELECTOR

2.1 点击/提交对象

driver.find_element(By.CSS_SELECTOR,“元素”).click()

2.2 模拟按键输入

driver.find_element(By.CSS_SELECTOR,“元素”).send_keys(“输入的文字”)

2.3 清除文本内容

driver.find_element(By.CSS_SELECTOR,“元素”).clear()

2.4 获取文本信息

mytext = driver.find_element(By.CSS_SELECTOR," 元素").text
print(mytext)

2.5 断言

assert mytext == “文本信息”
总结:获取到元素对应的文本信息后,通过断言判断文本信息是否符合预期。

2.6 获取属性值

shuxing = driver.find_element(By.CSS_SELECTOR,“元素”).get_attribute(“属性”)
总结:文本和属性值不要混淆了,标签里的是属性

2.7 获取页面标题

mytitle = driver.title

2.8 获取页面链接

myurl = driver.current_url
总结:适用于页面元素可点击跳转情况下,用来检测跳转的结果是否正确。若页面跳转后未打开新的标签页,则不需要进行窗口切换只用点击click()进入新页面即可。

3 窗口

当我们⼿⼯测试的时候,我们可以通过眼睛来判断当前的窗⼝是什么,但对于程序来说它是不知道当前最新的窗⼝应该是哪⼀个。对于程序来说它怎么来识别每⼀个窗⼝呢?每个浏览器窗⼝都有⼀个唯⼀的属性句柄(handle)来表⽰,我们就可以通过句柄来切换。

3.1 切换窗口

1)读取当前页面句柄(第一个标签页)
curHandle = driver.current_window_handle
2)读取所有页面句柄
allHandle = driver.window_handles
3)遍历所有页面句柄并切换到新的页面(第二个标签页)
for handle in allHandle:
if(handle != curHandle)
driver.switch_to.window(handle)
总结:通常情况下,一般会打开两个标签页,实现标签页的切换测试。更多时候,直接输入对应页面的链接url在当前标签页下进行测试。

3.2 窗口设置大小

1)窗口最大化
driver.maximize_window()
2)窗口最小化
driver.minimize_window()
3)全屏窗口(按F11键也可)
driver.fullscreen_window()
4)手动设置窗口大小
driver.set_window_size(宽度,高度)

3.3 关闭窗口

1)退出一个窗口,关闭driver对象指向的标签页(第一个窗口)
driver.close()
2)退出浏览器,所有的窗口/标签页都会关闭
driver.quite()

3.4 屏幕截图

1)截图名称
filename = “autotest-” + datetime.now().strftime(“%Y-%m-%d-%H%M%S”)+“.png”
2)生成图片
driver.save_screenshort(“./images” + filename)

4 等待

常代码执⾏的速度⽐⻚⾯渲染的速度要快,如果避免因为渲染过慢出现的⾃动化误报的问题呢?可以使⽤selenium中提供的三种等待⽅法:强制等待,隐式等待,显示等待。

4.1 强制等待

time.sleep(n)
优点:使⽤简单,调试的时候⽐较有效
缺点:影响运⾏效率,浪费⼤量的时间

4.2 隐式等待

driver.implicitly_wait(n)
优点:智能等待,作⽤于全局

4.3 显示等待

1)添加显示等待
wait = WebDriverWait(driver,n)
2)显示等待类对象
wait.until(expected_conditions.方法((查找元素方式,“元素”)))
:方法有很多,比如—检查弹窗是否存在方法:alert_is_present()
检查元素可见性方法: visibility_of_element_located()

优点:显⽰等待是智能等待,可以⾃定义显⽰等待的条件,操作灵活
缺点:写法复杂
结论:不要混合隐式和显式等待,可能会导致不可预测的等待时间。

5 浏览器导航

5.1打开网站

driver.get(“网址链接”)

5.2 浏览器/页面的前进,后退,刷新

1)前进
driver.forward()
2)后退
driver.back()
3)刷新
driver.refresh()

6 弹窗

弹窗是在⻚⾯是找不到任何元素的,这种情况怎么处理?使⽤selenium提供的Alert接口。

6.1 警告弹窗

1)切换到弹窗
alert = driver.switch_to.alert
2)确认
alert.accept()

6.2 确认弹窗

1)切换到弹窗
alert = driver.switch_to.alert
2)确认或者取消
alert.accept()或alert.dismiss()

6.3 提示弹窗

1)切换到弹窗
alert = driver.switch_to.alert
2)输入框输入信息
alert.send_keys(“输入信息”)
3)确认或者取消
alert.accept()或alert.dismiss()

7 文件上传

点击⽂件上传的场景下会弹窗系统窗⼝,进⾏⽂件的选择。selenium⽆法识别⾮web的控件,上传⽂件窗⼝为系统⾃带,⽆法识别窗⼝元素。send_keys可以将本地文件夹中的文件上传上来。

driver.find_element(查找元素方式,“元素”).send_keys(“文件路径+名称”)

8 浏览器参数设置

8.1 设置无头模式

无头模式即程序在后端运行,界面看不到页面的表现。自动打开浏览器默认情况下是有头模式。
软件测试之自动化测试常用函数_第1张图片

8.2 设置浏览器加载策略

driver.get()默认情况下等待所有的资源加载完成之后才能继续往下执行,但是实际上主页面加载完成之后我们就可以继续执行自动化,若一直等待的话可能会造成页面超时、元素找不到等问题…
软件测试之自动化测试常用函数_第2张图片
写在最后:自动化测试的进阶之路,离不开对这些常用函数的精准掌握与灵活运用。从元素定位的 “寻路指南”,到操作对象、窗口管理、等待策略等构建的完整交互体系,它们共同编织起自动化测试的核心逻辑网。这些函数不仅是实现测试流程自动化的技术支点,更是提升测试效率、保障产品质量的关键抓手。希望小伙伴们以这些常用函数为起点,在自动化测试的深度与广度上不断探索,为高质量软件交付筑牢技术屏障,也在行业技术迭代浪潮中,沉淀属于自己的测试竞争力(ง •_•)ง
软件测试之自动化测试常用函数_第3张图片

你可能感兴趣的:(可用性测试,功能测试,单元测试)