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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 用Python实现高效数据记录!Web自动化技术助你告别重复劳动!

image.png

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

简介

关键数据记录是 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);

}

总结

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

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
120 10
|
10天前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
112 60
|
13天前
|
存储 人工智能 人机交互
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
PC Agent 是上海交通大学与 GAIR 实验室联合推出的智能 AI 系统,能够模拟人类认知过程,自动化执行复杂的数字任务,如组织研究材料、起草报告等,展现了卓越的数据效率和实际应用潜力。
97 1
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
|
12天前
|
数据采集 存储 缓存
如何使用缓存技术提升Python爬虫效率
如何使用缓存技术提升Python爬虫效率
|
13天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
20天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
57 2
|
1月前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
1月前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
2月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
49 6
|
2月前
|
数据可视化 数据处理 Python
Python编程中的数据可视化技术
在Python编程中,数据可视化是一项强大的工具,它能够将复杂的数据集转化为易于理解的图形。本文将介绍如何使用matplotlib和pandas这两个流行的Python库来实现数据可视化,并展示一些实用的代码示例。通过这些示例,读者将学会如何创建各种图表,包括折线图、柱状图和散点图等,以便更好地理解和呈现数据。
下一篇
开通oss服务