用Python实现高效数据记录!Web自动化技术助你告别重复劳动!

2024-01-24

在这里插入图片描述

自动化关键数据记录

简介

关键数据记录是 Web 自动化测试中的关键部分,它们提供了关于系统行为和执行过程的详细信息,有助于验证用例的正确性,排查问题和确保应用程序的质量。

行为日志

行为日志是一种用于记录系统或应用程序的操作和事件的技术。它的目的是为了跟踪和记录应用程序的执行过程,以便在需要时审计、故障排查。

行为日志通常包括以下内容:

  • 时间戳(Timestamp):每个日志记录的时间,记录第个操作或事件发生的确切时间点。
  • 操作描述(Action Description):对每个操作或事件的详细描述。例如执行的操作。
  • 事件级别(Log Level):表示日志记录的重要性级别。如信息、警告、错误等。
  • 相关信息(Additional Information):可以包括与操作或事件相关的其他数据,如参数、输入值等。

步骤截图

步骤截图用于捕捉 Web 自动化测试测试中的关键执行步骤,以便验证测试用例的正确性和可视化执行过程。

步骤截图包括以下内容:

  • 屏幕截图:捕获 Web 自动化测试执行期间的屏幕图像,包括应用程序界面、当前页面内容和操作后的可视变化。
  • 元素状态截图:捕获特定元素的状态,例如鼠标悬停、点击或其他交互触发的状态。这有助于验证页面元素的交互性和正确性。
  • 控制台日志截图:捕获测试执行期间浏览器控制台的日志信息。将控制台日志与屏幕截图结合使用,有助于更全面地分析测试执行过程中的问题。

页面源代码 page source

page source 是一个用于捕获当前网页的 DOM(文档对象模型)结构的关键数据记录。用于排查元素查找问题、验证页面结构和属性。page source 通常包括以下内容:

  • HTML 结构:整个页面的 HTML 标记,包括元素、属性和内容。
  • CSS 样式:与页面关联的 CSS 样式信息,有助于了解元素的布局。
  • 元素属性:每个元素的属性,用于标识和定位元素。
  • JavaScript 代码:如果页面包含 JavaScript,也可以包括 JavaScript 代码,以便分析页面的交互行为。

行为日志记录

需要先导入 logging 模块,运行之后,可以看到打印了对应的行为日志。

Python 实现

def test_logging():
    # 实例化driver
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)
    # 打开百度首页
    driver.get("https://www.baidu.com")
    logging.info("打开百度首页")
    # 输入霍格沃兹测试学院
    driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("霍格沃兹测试学院")
    logging.info("输入霍格沃兹测试学院")
    # 点击搜索
    driver.find_element(By.CSS_SELECTOR, "#su").click()
    logging.info("点击搜索")
    time.sleep(3)
    driver.quit()

Java 实现

publicclass demoTest{
privatestaticfinalLoggerlogger=LoggerFactory.getLogger(demoTest.class);
@Test
voiddemo(){
//实例化driver
WebDriverdriver=webdriver.Chrome();
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
// 打开百度首页

driver.get("https://www.baidu.com");
logger.info("打开百度首页")
// 输入霍格沃兹测试学院
driver.findElement(By.cssSelector("#kw")).sendKeys("霍格沃兹测试学院");
logger.info("输入霍格沃兹测试学院")
// 点击搜索
driver.findElement(By.cssSelector("#su")).click()
logger.info("点击搜索")
Thread.sleep(3)
driver.quit()
}}

步骤截图记录

driver.get_screenshot_as_file :用于将当前浏览器窗口的屏幕截图保存为文件,需提前创建保存截图文件的目录。

Python 实现

def test_screenshot():
    # 实例化driver
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)
    # 打开百度首页
    driver.get("https://www.baidu.com")
    driver.get_screenshot_as_file(f"./screenshot/打开百度首页.png")
    # 输入霍格沃兹测试学院
    driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("霍格沃兹测试学院")
    driver.get_screenshot_as_file(f"./screenshot/输入霍格沃兹测试学院.png")
    # 点击搜索
    driver.find_element(By.CSS_SELECTOR, "#su").click()
    driver.get_screenshot_as_file(f"./screenshot/点击搜索.png")
    time.sleep(3)
    driver.quit()

Java 实现

@Test
voidsogouScreen2()throwsIOException,InterruptedException{
driver.get("https://www.sogou.com/");
WebElementsearch=driver.findElement(By.xpath("//*[@class='sec-input-box']/input"));
actions
.sendKeys(search,"霍格沃兹")
.sendKeys(Keys.ENTER)
.perform();
Thread.sleep(2000);
WebElementelement=driver.findElement(By.xpath("//*[@class='struct201102']//*[@vrcid='title.ba18e87']"));
//在元素element被找到后,进行截图
FileeleScreen=element.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(eleScreen,newFile("./image2.png"));
}

page source 记录

driver.page_source :用于获取当前网页的 HTML 源代码。

Python 实现

def test_page_source():
    # 实例化driver
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)
    # 打开百度首页
    driver.get("https://www.baidu.com")
    # 打印页面信息
    print(driver.page_source)
    # 输入霍格沃兹测试学院
    driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("霍格沃兹测试学院")
    # 点击搜索
    driver.find_element(By.CSS_SELECTOR, "#su").click()
    time.sleep(3)
    driver.quit()

Java 实现

@Test
voidsogouScreen3()throwsIOException{
driver.get("https://www.sogou.com/");
StringpageSource=driver.getPageSource();
logger.debug(pageSource);

FileWriterpageSourceFile=newFileWriter("./pageSource.html");
pageSourceFile.write(pageSource);

}

总结

通过设立截图节点,日志打印,可以清晰看到程序运行时的情况以及出现报错时的页面信息。

霍格沃兹的测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供 1v1 私教指导,BAT 级别的测试管理大咖量身打造职业规划。

微信图片_20240122172740.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用Python实现高效数据记录!Web自动化技术助你告别重复劳动! 的相关文章

  • 如何关闭python服务器

    使用此代码来运行 python 服务器 import os from http server import SimpleHTTPRequestHandler HTTPServer os chdir c users owner desktop
  • 不能在jinja2宏中使用current_user?

    我使用 Flask Login 它提供了current user模板中的对象 我想编写一个宏来显示评论表单或登录链接 具体取决于用户是否登录 如果我直接在模板中使用此代码 它会起作用 if current user is authentic
  • pandas python 根据一个或多个其他列的子集更新 A 列的子集

    Edit我修改了下面的部分描述 以澄清 功能 和 组 的含义 修复拼写错误 并包含我尝试过的其他代码 我的熊猫df有 450 万行和 23 列 下表显示了几行df2这是从生成的df 它显示了两组 eeskin and hduquant 和三
  • 使用解析将 ** 运算符更改为幂函数?

    我的要求是将 运算符更改为幂函数 例如 1 Input B 2 Output power B 2 2 B 2 T 2 X Output power B 2 我写了下面的正则表达式来解决这个问题 rx r a zA Z0 9 a zA Z0
  • python 类的属性不在 __init__ 中

    我想知道为什么下面的代码有效 usr bin env python3 import sys class Car def init self pass if name main c Car c speed 3 c time 5 print c
  • Python3如何安装.ttf字体文件?

    我想使用 python3 更精确的 Python 3 6 代码在 Windows 10 上安装 ttf 字体文件 我用谷歌搜索 但我发现的唯一的就是这个使用python在windows上安装TTF字体 https stackoverflow
  • 如何对嵌套函数进行单元测试? [复制]

    这个问题在这里已经有答案了 您将如何对嵌套函数进行单元测试f1 在下面的例子中 def f def f1 return 1 return 2 或者需要测试的函数不应该嵌套吗 有一个类似的问题这个链接 https stackoverflow
  • 计算二维笛卡尔坐标中不规则形状的边界

    我正在寻找一种计算不规则形状边界的解决方案 Lats take a look at Square example 如果我有Minimum x and y and Maximum x and y like MaxX 5 MinX 1 MaxY
  • pip-tools 的干净设置不会编译非常基本的 pyproject.toml

    使用全新的pip tools设置总是会导致Backend subprocess exited error pyproject toml project dependencies openpyxl gt 3 0 9 lt 4 在仅包含上述 p
  • 如何使用JQuery和Django(ajax + HttpResponse)?

    假设我有一个 AJAX 函数 function callpage ajax method get url abc data x 3 beforeSend function success function html IF HTTPRESPO
  • Python:如何使用生成器来避免 sql 内存问题

    我有以下方法来访问 mysql 数据库 并且查询在服务器中执行 我无权更改有关增加内存的任何内容 我对生成器很陌生 并开始阅读更多有关它的内容 并认为我可以将其转换为使用生成器 def getUNames self globalUserQu
  • 在 Django 中翻译文件时的 Git 命令

    我在 Django 中有一个现有的应用程序 我想在页面上添加翻译 在页面上我有 trans Projects 在 po 文件中我添加了 templates staff site html 200 msgid Projects msgid P
  • Python写入dbf数据时出错

    我得到这个错误 DbfError unable to modify fields individually except in with or Process 如何修复它 这是我的code with dbf Table aa dbf as
  • 找到图像特征宽度的正确方法和Python包

    输入是一个在黑色背景上带有彩色 抱歉 垂直线的光谱 给定该带的近似 x 坐标 用 X 标记 我想找到该带的宽度 我对图像处理不熟悉 请引导我前往正确的方法图像处理和Python图像处理package也能起到同样的作用 我认为 PIL Ope
  • Numba jitclass 不适用于 python 列表

    我在用python 3 6 and numba 0 36 这个问题有一个sister https stackoverflow com questions 48159360 numba custom stack class and pop f
  • 使用多行选项和编码选项读取 CSV

    在 azure Databricks 中 当我使用以下命令读取 CSV 文件时multiline true and encoding SJIS 似乎编码选项被忽略了 如果我使用multiline选项 Spark 使用默认值encoding那
  • 检测计算机何时解锁 Windows

    我用过这个优秀的方法 https stackoverflow com questions 20733441 lock windows workstation using python 20733443锁定 Windows 计算机 那部分工作
  • 在 Mac (Catalina) 上安装 PyGame 时出错 [重复]

    这个问题在这里已经有答案了 我一直在尝试将 PyGame 安装到 Catalina 上的 Mac 上 但不知道如何安装 我收到的错误消息是 SystemExit error command gcc failed with exit stat
  • 磁盘寻道时间测量方法

    我编写了一个脚本来测量 HDD 上的寻道时间 并且其完成方式的微小变化会导致显着不同的时间 第一个周期在磁盘开头的区域内进行跳转 第二个周期选择磁盘上执行查找的随机区域 相同大小 这种方法显然不同 但我不明白为什么它会改变结果 请注意 对于
  • 从 xgb.train() 获取概率

    我是 Python 和机器学习的新手 我在网上搜索了我的问题 并尝试了人们建议的解决方案 但仍然没有得到它 如果有人能帮助我 我将非常感激 我正在开发我的第一个 XGboost 模型 我已经使用 xgb XGBClassifier 调整了参

随机推荐

  • 12. openCV在QT环境中利用zBar开发库实现二维码内容识别

    1 说明 本篇博客仅记录如何使用zBar库进行二维码内容的识别 其中牵扯到的一些其它知识点 比如二维码区域检测 zBar库开发环境配置等可以参考本专栏的其它相关博客 此篇博客不再赘述 2 具体步骤 博客中代码功能 手动选择一张包含二维码的图
  • SpringCloud Config分布式配置中心

    文章目录 代码地址 简介 与GitHub整合配置 项目整合 测试 Config客户端配置与测试 测试 Config客户端之动态刷新 测试
  • 共享类变量的解决方案

    在面向对象编程中 类变量通常用于存储与类相关的信息 例如静态属性或常量 然而 当多个类需要访问共享的变量时 可能遇到共享类变量的挑战 解决方案 以下是一些共享类变量的解决方案 1 使用全局变量 将共享变量定义为全局变量 可以在所有类中访问
  • 【安全】Java幂等性校验解决重复点击(6种实现方式)

    目录 一 简介 1 1 什么是幂等 1 2 为什么需要幂等性 1 3 接口超时 应该如何处理 1 4 幂等性对系统的影响 二 Restful API 接口的幂等性 三 实现方式 3 1 数据库层面 主键 唯一索引冲突 3 2 数据库层面 乐
  • 计算机Java项目|人体健康信息管理系统

    作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智能与大数据 简历模板
  • 对中国手机作恶的谷歌,印度CEO先后向三星和苹果低头求饶

    日前苹果与谷歌宣布合作 发布了 Find My Device Network 的草案 旨在规范蓝牙追踪器的使用 在以往苹果和谷歌的生态形成鲜明的壁垒 各走各路 如今双方竟然达成合作 发生了什么事 首先是谷歌安卓系统的市场份额显著下滑 数年来
  • 【学习分享】全志平台TWI子系统源码分析(1)从设备树到寄存器

    全志平台TWI子系统源码分析 1 从设备树到寄存器 前言 一 名词解释 二 从设备树入手看源码 1 TWI设备树 2 TWI源码位置 3 TWI总线相关寄存器 总结 前言 这次开坑主要是想把全志平台TWI子系统在源
  • 2024免费mathtype7.4.4安装注册步骤教程

    数学建模中对公式的编辑有很高的要求 mathtype是一款专业的数学公式编辑工具 能够帮助用户在各种文档中插入复杂的数学公式和符号 一 Mathtype 的下载安装 1 1 安装前须知 解压和安装前 需要将电脑的杀毒软件或者防火墙关掉 如发
  • Java进阶之旅第七天

    Java进阶之旅第七天 文章目录 Java进阶之旅第七天 方法引用 介绍 代码展示 结果 方法引用的分类
  • 高中数学:不等式(初接高)

    1 二次不等式 2 分式不等式 最后的例题 是为了说明第三种情况 就是 不等号右边不为0时 要先进行移项操作 将右边化为0 这样 就转化成1 2两种情况了 3 其它复杂不等式 3 1 高次不等式 3 2 绝对值不等式 3 3 根式不等式 补
  • 深入解析 YAML 配置文件:从语法到最佳实践

    一 认识YAML YAML YAML Ain t Markup Language 是一种人类可读的数据序列化语言 它的设计目标是使数据在不同编程语言之间交换和共享变得简单 YAML采用了一种简洁 直观的语法 以易于阅读和编写的方式表示数据结
  • [机缘参悟-131] :《洞见》:为什么佛学是真的 -2-从进化心理学了解佛家的三毒“贪嗔痴”的进化机制

    目录 一 佛家的三毒 贪嗔痴 二 进化心理学对贪嗔痴的解释 2 1 贪欲 2 1 1 贪欲的满足与快乐的本质 2 1 2 贪欲得不到满足与痛苦的本质 2 2 恶意和愤怒 2 3 愚痴和无知 2 3 1 大众对痴的解释 2 3 2 佛对痴的解
  • 2023下半年软考「单独划线」合格标准公布

    中国计算机技术职业资格网发布了 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告 2023下半年软考单独划线地区合格标准各科目均为42分 01 官方通告 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告
  • 【安全】使用docker安装Nessus

    目录 一 准备docker环境服务器 略 二 安装 2 1 搜索镜像 2 2 拉取镜像 2 3 启动镜像 三 离线更新插件 3 1 获取challenge 3 2 官方注册获取激活码 3 3 使用challenge码和激活码获取插件下载地址
  • 题解 | #求小球落地5次后所经历的路程和第5次反弹的高度#

    没实习没项目Java还是嵌入式 经纬恒润 华为上海青浦研究所现状 计算机秋招指南 国内软件厂商公司名单库 春招提前批 提前实习把工作实习没了 24秋招 完结撒花 今天我就是最大华黑 最近在普联 TP LINK 的见闻 2024年1月 华为还
  • 如何使用 dotnet pack 打包 .NET 跨平台程序集?

    如何使用 dotnet pack 打包 NET 跨平台程序集 dotnet pack 介绍 官方描述 dotnet pack 命令说明 使用示例 打包 net 类库项目 生成带注释的 nuget 包 构建特定平台的 nuget 包
  • 【UE材质】通过曲线图谱和颜色曲线来控制材质运动

    目录 效果 步骤 一 实现线性运动 二 实现非线性运动 效果 步骤 一 实现线性运动 1 新建一个材质并打开 设置材质域为用户界面 混合模式为半透明 在材质图表中添加如下节点 此时我们就可以通过数值改变圆圈纹理的缩放 但是缩放会伴随着纹理平
  • Spring Boot引起的“堆外内存泄漏”排查及经验总结

    Spring Boot引起的 堆外内存泄漏 排查及经验总结 背景 为了更好地实现对项目的管理 我们将组内一个项目迁移到MDP框架 基于Spring Boot 随后我们就发现系统会频繁报出Swap区域使用量过高的异常 笔者被叫去帮忙查看原因
  • 获取年与年之间的所有年份

    function getYearsBetween startYear endYear var years 存放结果的数组 for var year startYear year lt endYear year years push year
  • 用Python实现高效数据记录!Web自动化技术助你告别重复劳动!

    自动化关键数据记录 简介 关键数据记录是 Web 自动化测试中的关键部分 它们提供了关于系统行为和执行过程的详细信息 有助于验证用例的正确性 排查问题和确保应用程序的质量 行为日志 行为日志是一种用于记录系统或应用程序的操作和事件的技术 它