当前位置: 首页 > news >正文

测试基础笔记第十六天

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、UI自动化介绍
    • 1.认识UI自动化测试
    • 2.实施UI自动化测试前置条件
    • 3.UI自动化测试执行时机
    • 4.UI自动化测试核心作用和劣势
  • 二、认识Web自动化测试工具-Selenium02
    • 1.Selenium 特点
    • 2.Selenium 核心组件
    • 3.Web自动化测试环境搭建步骤
  • 1.导包
  • 三、入门案例
    • 1.自动登录
  • 四、CSS选择器定位
    • 1.认识CSS定位
    • 2.css选择器
    • 3.CSS定位-层级选择器
    • 4.表单自动化
    • 5.元素属性定位


一、UI自动化介绍

1.认识UI自动化测试

  • UI:User Interface,简称UI,用户界面是系统和用户之间进行交互和信息交换的媒介
  • UI自动化测试:使用程序、脚本对系统界面体现的功能和数据信息展示等进行的测试技术
  • 为什么要自动化测试:
  1. 大量的版本需要回归测试
  2. 手工回归测试效率比较低
  3. 测试工程师价值得不到体现

2.实施UI自动化测试前置条件

  • 项目需要实施UI自动化测试需要满足以下前置条件
    1.项目上线发布频率高,回归测试任务重
    2.项目需要实现自动化的功能模块,需求变更不频繁

一般只实现核心功能模块

3.项目周期要长

公司自研或者公司核心产品

3.UI自动化测试执行时机

  • 一般情况下在手工测试完成之后
  • 版本或项目功能趋于稳定
  • 在这里插入图片描述

4.UI自动化测试核心作用和劣势

  • 项目实现UI自动化测试后:
    1.节省人力成本:回归测试工作由脚本代替人去执行
    2.提高回归测试效率:脚本执行测试速度更快
    3.提高测试质量:一旦自动化脚本库完善后测试执行过程更标准和准确
  • UI自动化测试劣势
    1.对测试人员要求提高
    2.前期投入成本大
    3.对项目要求高

二、认识Web自动化测试工具-Selenium02

1.Selenium 特点

在这里插入图片描述
在这里插入图片描述

2.Selenium 核心组件

  • Selenium-IDE
    浏览器插件,录制脚本工具。支持脚本回放和导出。
  • Selenium-Grid
    分布式执行自动化测试用例工具,用于大批量测试用例
    的执行
  • Selenium-Webdriver
    脚本编写核心工具,提供模拟手工操作的常用方法

3.Web自动化测试环境搭建步骤

在这里插入图片描述

  • 安装包语法:pip install selenium
  • 查看包语法:pip show selenium
  • 卸载包语法:pip uninstall selenium
  • 示例:通过程序启动浏览通过程序启动浏览器,并打开商城首页,暂停3秒,关闭浏览器,并打开百度首页,暂停3秒,关闭浏览器

1.导包

import time
from selenium import webdriver
#2.创建浏览器驱动对象
#Chrome浏览器:
driver = webdriver.Chrome()
#3.打开Web页面
driver.get(“https://hmshop-test.itheima.net/index.php”)
#4.暂停
time.sleep(3)
#5.关闭驱动对象

三、入门案例

1.自动登录

  • 关键步骤:
  1. 打开浏览器
  2. 访问页面
  3. 页面操作
  4. 关闭浏览器
    在这里插入图片描述
  • 查找元素:element = driver.find_element(定位方法, 值)
  • 元素操作:
    输入:element.send_keys(value)
    点击: element.click()
  • 步骤:
    步骤:
    1、导包
    2、打开浏览器
    3、访问页面
    4、页面操作
    ① 用户名查找及操作
    ② 密码查找及操作
    ③ 验证码查找及操作
    ④ 登录按钮查找及操作
    5、关闭浏览器

#1、导包
import time
from selenium import webdriver
#快捷导包 ctrl + alt + 空格
from selenium.webdriver.common.by import By
#2、打开浏览器
driver = webdriver.Chrome()
#窗口最大化
driver.maximize_window()
#3、访问页面
driver.get(“https://hmshop-test.itheima.net/Home/user/login.html”)
#4、页面操作
#用户名查找及操作
element = driver.find_element(By.ID, “username”)
element.send_keys(“13488888888”)
#密码查找及操作
element = driver.find_element(By.ID, “password”)
element.send_keys(“123456”)
#验证码查找及操作
driver.find_element(By.ID, “verify_code”).send_keys(“8888”)
#登录按钮查找及操作
driver.find_element(By.NAME, “sbtbutton”).click()
#5、关闭浏览器
time.sleep(3)
driver.quit()

四、CSS选择器定位

1.认识CSS定位

  • css概念:(Cascading Style Sheets)是一种语言,用来描述HTML
    元素的显示样式。
  • 选择器:一种表达式,可以找到HTML中的标签元素。
  • css定位概念:selenium利用选择器定位元素的定位方式。
  • 方法:driver.find_elements(By.CSS_SELECTOR, 选择器表达式)

2.css选择器

  • ID选择器:
    | 说明:利用元素ID属性来选择
    l 格式:#id属性值
  • 类选择器
    l 说明:利用类名来选择
    l 格式:.类名
  • 属性选择器
    l 说明:利用标签的属性来选择
    l 格式:HTML标签[属性=值]
    l 局部属性:HTML标签[属性名*=‘局部属性值’]

3.CSS定位-层级选择器

  • 父子关系:后代关系包含了父子关系,一般只需要记忆后代关系即可
    概念:据元素的父子关系来选择元素。
    表达式写法:element1>element2。
  • 语法:在这里插入图片描述
  • 后代关系:
    概念:根据元素的上级元素来选择元素(只要是目标元素上层元素即可)
    表达式写法:element1 element2。
  • 语法:在这里插入图片描述

4.表单自动化

  • 能够通过CSS选择器定位到页面元素
  • 能通过id,class进行元素定位,并实现输入框自动输入及自动清除
  • 案例:在这里插入图片描述
  • 代码:

#导包
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
#打开浏览器
driver = webdriver.Chrome()
driver.maximize_window()
#打开页面
driver.get(“https://hmshop-test.itheima.net/Home/user/reg.html”)
#页面操作
#手机号码:#username
driver.find_element(By.CSS_SELECTOR, “#username”).send_keys(“13612330001”)
#图像验证码:.inp.imgcode.J_imgcode
driver.find_element(By.CSS_SELECTOR, “[name=‘verify_code’]”).send_keys(“8888”)
#设置密码:#password
driver.find_element(By.CSS_SELECTOR, “#password”).send_keys(“123456”)
#确认密码:#password2
driver.find_element(By.CSS_SELECTOR, “#password2”).send_keys(“123456”)
#推荐人手机:.inp.fmobile.J_cellphone
driver.find_element(By.CSS_SELECTOR, “[name=‘invite’]”).send_keys(“13488888888”)
#我已阅读并同意《用户服务协议》:
#同意协议并注册:.regbtn.J_btn_agree
driver.find_element(By.CSS_SELECTOR, “.regbtn.J_btn_agree”).click()
time.sleep(3)
#退出浏览器
driver.quit()

  • 在这里插入图片描述

5.元素属性定位

  • id定位: driver.find_element(By.ID, “id属性值”)
  • class定位: driver.find_element(By.CLASS_NAME, “class属性值”)
  • name定位: driver.find_element(By.NAME, “name属性值”)
  • 案例:

#导入工具包
import time
from selenium.webdriver.common.by import By
from tools.chromeDriver import get_driver, quit_driver
import random
#获取驱动、并实现页面元素定位与操作
driver = get_driver(“https://hmshop-test.itheima.net/Home/user/reg.html”)
##username
#driver.find_element(By.CSS_SELECTOR, “#username”).send_keys(“13633331001”)
#引入随机数解决手机号唯一性问题
driver.find_element(By.ID, “username”).send_keys(f"136{random.randint(20000000,
88887777)}“)
#.inp.imgcode.J_imgcode
driver.find_element(By.CLASS_NAME, “imgcode”).send_keys(“8888”)
##password
driver.find_element(By.ID, “password”).send_keys(“123456”)
##password2
driver.find_element(By.ID, “password2”).send_keys(“123456”)
#[name=‘invite’]
driver.find_element(By.NAME, “invite”).send_keys(”")
#.regbtn.J_btn_agree
time.sleep(2)
driver.find_element(By.CLASS_NAME, “J_btn_agree”).click()
#退出浏览器
quit_driver(driver)
在这里插入图片描述

相关文章:

  • JAVA---集合ArrayList
  • 虹科新品 | 汽车通信新突破!PCAN-XL首发上线!
  • go编解码json和http请求
  • 时序数据库 TDengine × Perspective:你需要的可视化“加速器”
  • 仿腾讯会议——注册登录UI
  • 数据库系统概论|第三章:关系数据库标准语言SQL—课程笔记7
  • Android Framework常见问题
  • 并发设计模式实战系列(9):消息传递(Message Passing)
  • 废品回收小程序:全链路数字化解决方案,赋能绿色未来
  • TDengine 订阅不到数据问题排查
  • unity在编辑器模式调试音频卡顿电流声
  • 10.学习笔记-MyBatisPlus(P105-P110)
  • 水库现代化建设指南-水库运管矩阵管理系统建设方案
  • Android WIFI体系
  • Liunx安装Apache Tomcat
  • 数据一致性巡检总结:基于分桶采样的设计与实现
  • Linux CentOS 7 安装Apache 部署html页面
  • 松下机器人快速入门指南(2025年更新版)
  • python:sklearn 决策树(Decision Tree)
  • 当前HPLC载波无法满足全量数据分钟级采集需求的主要原因
  • 中行一季度净赚超543亿降2.9%,利息净收入降逾4%
  • 习近平访问金砖国家新开发银行
  • 癌症来临前,可能伪装成这几种常见病,千万别大意
  • 暗蓝评《性别打结》丨拆解性别之结需要几步?
  • 对谈|李钧鹏、周忆粟:安德鲁·阿伯特过程社会学的魅力
  • 来伊份一季度净利减少近八成,今年集中精力帮助加盟商成功