【Python百宝箱】自动化魔法大揭秘:探索强大的自动化工具与技术

前言

在当今数字化时代,机器人流程自动化成为提高工作效率、减少人工重复性工作负担的关键技术之一。通过智能化的自动化工具和框架,开发者能够轻松地实现对图形用户界面的模拟操作、测试任务的自动执行,以及多平台移动应用的自动化测试。本文将介绍一系列在机器人流程自动化领域中备受推崇的Python库和框架,为读者提供全面的了解和应用指南。

欢迎订阅专栏:Python库百宝箱:解锁编程的神奇世界

本文将详细介绍几个在机器人流程自动化中备受欢迎的Python库和框架,包括pyautoguiRobot FrameworkSikuliXAutoItAppiumpywinautoPlaywrightWinAppDriverAutoHotKeyWinium以及AutoPy。每个工具都有其独特的用途和特点,覆盖了从桌面应用到Web应用、移动应用等多个场景的自动化需求。读者将在本文中了解到这些工具的核心功能、示例用法以及适用场景,为选择合适的自动化工具提供全方位的指导。

文章目录

    • 前言
      • 1. **`pyautogui`**
        • 1.1 **简介**
        • 1.2 **应用场景**
        • 1.3 **示例用法**
        • 1.4 **进阶用法 - 自定义动作序列**
        • 1.5 **拓展 - 控制鼠标滚轮**
        • 1.6 **拓展 - 键盘热键**
      • 2. **`Robot Framework`**
        • 2.1 **简介**
        • 2.2 **核心特性**
        • 2.3 **应用领域**
        • 2.4 **示例用法 - 使用SeleniumLibrary进行Web自动化测试**
        • 2.5 **进阶用法 - 自定义关键字和库**
        • 2.6 **拓展 - 数据驱动测试**
      • 3. **`SikuliX`**
        • 3.1 **简介**
        • 3.2 **应用场景**
        • 3.3 **示例用法 - 图像匹配和操作**
        • 3.4 **进阶用法 - 复杂交互场景**
        • 3.5 **拓展 - 多图像匹配**
      • 4. **`AutoIt`**
        • 4.1 **简介**
        • 4.2 **应用领域**
        • 4.3 **示例用法 - 模拟键盘和鼠标操作**
        • 4.4 **进阶用法 - 处理GUI元素**
        • 4.5 **拓展 - 处理系统弹窗**
      • 5. **`Appium`**
        • 5.1 **简介**
        • 5.2 **核心功能**
        • 5.3 **应用场景**
        • 5.4 **示例用法 - Python中使用Appium进行移动应用测试**
        • 5.5 **进阶用法 - 页面元素定位和操作**
      • 6. **`pywinauto`**
        • 6.1 **简介**
        • 6.2 **核心功能**
        • 6.3 **应用场景**
        • 6.4 **示例用法 - 使用pywinauto进行记事本自动化操作**
        • 6.5 **进阶用法 - 控件的查找和操作**
      • 7. **`Playwright`**
        • 7.1 **简介**
        • 7.2 **核心功能**
        • 7.3 **应用场景**
        • 7.4 **示例用法 - 使用Playwright进行Web自动化测试**
        • 7.5 **进阶用法 - 用户操作录制**
      • 8. **`WinAppDriver`**
        • 8.1 **简介**
        • 8.2 **核心功能**
        • 8.3 **应用场景**
        • 8.4 **示例用法**
      • 9. **`AutoHotKey`**
        • 9.1 **简介**
        • 9.2 **核心功能**
        • 9.3 **应用场景**
        • 9.4 **示例用法**
      • 10. **`Winium`**
        • 10.1 **简介**
        • 10.2 **核心功能**
        • 10.3 **应用场景**
        • 10.4 **示例用法**
      • 11. **`AutoPy`**
        • 11.1 **简介**
        • 11.2 **核心功能**
        • 11.3 **应用场景**
        • 11.4 **示例用法**
    • 总结

1. pyautogui

1.1 简介
  • 用于自动化用户界面交互的Python库。
  • 支持模拟鼠标和键盘的操作,实现对图形用户界面 (GUI) 的自动化。
1.2 应用场景
  • GUI测试:自动模拟用户在图形界面上的操作,验证应用程序的可用性。
  • 自动化任务执行:通过脚本实现重复性高的任务,提高工作效率。
1.3 示例用法
import pyautogui
import time# 移动鼠标到坐标(100, 100),持续0.5秒
pyautogui.moveTo(100, 100, duration=0.5)# 模拟点击鼠标左键
pyautogui.click()# 键盘输入字符串
pyautogui.typewrite("Hello, World!")# 截取屏幕区域并保存为图片
screenshot = pyautogui.screenshot()
screenshot.save("screenshot.png")
1.4 进阶用法 - 自定义动作序列
import pyautogui# 自定义动作序列
custom_sequence = [
('move', (100, 100), 0.5),
('click',),
('typewrite', 'Hello, World!'),
('screenshot', 'custom_screenshot.png')
]# 执行自定义动作序列
for action in custom_sequence:
if len(action) == 1:
getattr(pyautogui, action[0])()
elif len(action) == 2:
getattr(pyautogui, action[0])(action[1])
elif len(action) == 3:
getattr(pyautogui, action[0])(action[1], duration=action[2])
1.5 拓展 - 控制鼠标滚轮
import pyautogui# 向上滚动鼠标滚轮
pyautogui.scroll(10)# 向下滚动鼠标滚轮
pyautogui.scroll(-10)
1.6 拓展 - 键盘热键
import pyautogui# 模拟按下Ctrl+C,复制操作
pyautogui.hotkey('ctrl', 'c')# 模拟按下Ctrl+V,粘贴操作
pyautogui.hotkey('ctrl', 'v')

通过这些示例,展示了pyautogui库基础的鼠标、键盘模拟,自定义动作序列,以及更进一步的鼠标滚轮和键盘热键的应用。这些功能使得pyautogui成为处理图形用户界面自动化任务的强大工具。

2. Robot Framework

2.1 简介
  • 通用的自动化测试和自动化流程框架,支持关键字驱动。
  • 使用自然语言关键字编写测试用例,使得非技术人员也能参与测试过程。
2.2 核心特性
  • 可扩展性和灵活性:支持自定义关键字和库,适应不同的测试需求。
  • 支持关键字驱动和数据驱动:测试用例可以通过关键字组合的方式灵活构建,也支持使用数据进行测试。
2.3 应用领域
  • 自动化测试:适用于Web应用、移动应用等各种软件测试。
  • 流程自动化:可用于自动化执行复杂的业务流程,提高操作效率。
2.4 示例用法 - 使用SeleniumLibrary进行Web自动化测试
*** Settings ***
Documentation    This is a sample test suite
Library          SeleniumLibrary*** Variables ***
${URL}           http://www.example.com
${BROWSER}       Chrome*** Test Cases ***
Open Website
Open Browser    ${URL}    ${BROWSER}
Maximize Browser Window
Close Browser
2.5 进阶用法 - 自定义关键字和库
*** Settings ***
Documentation    This is an advanced test suite
Library          SeleniumLibrary
Library          Collections*** Variables ***
${URL}           http://www.example.com
${BROWSER}       Chrome*** Test Cases ***
Open Website with Custom Keyword
${browser}    Get Browser    ${BROWSER}
Open Browser    ${URL}    ${browser}
Maximize Browser Window
Close Browser*** Keywords ***
Get Browser
[Arguments]    ${browser}
${browsers}    Create Dictionary    Chrome=chrome    Firefox=firefox
${browser}     Get From Dictionary    ${browsers}    ${browser}
[Return]       ${browser}
2.6 拓展 - 数据驱动测试
*** Settings ***
Documentation    This is a data-driven test suite
Library          SeleniumLibrary
Library          OperatingSystem*** Variables ***
${URL}           http://www.example.com
${BROWSER}       Chrome*** Test Cases ***
Open Website with Different Browsers
[Template]    Open Browser and Close
${BROWSER}
Firefox*** Keywords ***
Open Browser and Close
[Arguments]    ${browser}
Open Browser    ${URL}    ${browser}
Maximize Browser Window
Close Browser

Robot Framework的强大之处在于其易读性和可扩展性,使得非技术人员能够轻松编写测试用例。通过示例,展示了基本的Web自动化测试,如打开网页、最大化窗口,并介绍了自定义关键字、库和数据驱动测试的用法。

3. SikuliX

3.1 简介
  • 专注于图形界面的自动化测试和操作的工具。
  • 通过图像匹配来识别和操作图形界面元素,适用于复杂交互场景。
3.2 应用场景
  • 图形界面元素的识别和操作:通过匹配图像实现对图形元素的自动化操作。
  • 自动化场景复杂、交互多的应用:适用于需要模拟人类交互的场景,如拖放、缩放等。
3.3 示例用法 - 图像匹配和操作
# 导入SikuliX库
from sikuli import *# 设置图像识别的阈值
setFindFailedResponse(PROMPT)
setFindFailedResponse(ABORT)# 查找并点击图像
click("image.png")
3.4 进阶用法 - 复杂交互场景
# 导入SikuliX库
from sikuli import *# 设置图像识别的阈值
setFindFailedResponse(PROMPT)
setFindFailedResponse(ABORT)# 拖放操作
dragDrop("source_image.png", "target_image.png")# 缩放操作
wheel("image.png", WHEEL_DOWN, 3)
3.5 拓展 - 多图像匹配
# 导入SikuliX库
from sikuli import *# 设置图像识别的阈值
setFindFailedResponse(PROMPT)
setFindFailedResponse(ABORT)# 多图像匹配并点击
click("image1.png" or "image2.png" or "image3.png")

通过示例,展示了SikuliX库基础的图像匹配和点击操作,以及更进一步的复杂交互场景的实现,如拖放、缩放等。SikuliX适用于那些需要在图形界面上进行复杂交互的自动化场景,提供了强大的图像识别和操作能力。

4. AutoIt

4.1 简介
  • 一种用于Windows平台的自动化脚本语言和工具。
  • 提供了丰富的功能,包括模拟键盘、鼠标操作,以及对GUI元素的控制。
4.2 应用领域
  • Windows平台下的自动化任务和测试:通过编写脚本实现对Windows应用的自动化操作。
  • 处理弹窗和对话框:可用于模拟用户处理系统弹窗或对话框。
4.3 示例用法 - 模拟键盘和鼠标操作
; 打开记事本
Run("notepad.exe"); 等待记事本窗口出现
WinWaitActive("Untitled - Notepad"); 输入文本
Send("Hello, AutoIt!"); 关闭记事本
WinClose("Untitled - Notepad")
4.4 进阶用法 - 处理GUI元素
; 打开计算器
Run("calc.exe"); 等待计算器窗口出现
WinWaitActive("Calculator"); 点击计算器按钮
ControlClick("Calculator", "", "[CLASS:Button; INSTANCE:15]"); 获取计算器显示结果
$result = ControlGetText("Calculator", "", "[CLASS:Static; INSTANCE:29]"); 关闭计算器
WinClose("Calculator"); 输出计算结果
MsgBox(0, "Calculator Result", "The result is: " & $result)
4.5 拓展 - 处理系统弹窗
; 打开文件对话框
Run("notepad.exe")
WinWaitActive("Untitled - Notepad"); 模拟按下Ctrl+S,弹出保存对话框
Send("^s")
WinWaitActive("Save As"); 输入保存文件名
Send("file_to_save.txt"); 点击保存按钮
ControlClick("Save As", "", "[CLASS:Button; INSTANCE:1]"); 等待保存完成
WinWaitClose("Save As")

通过示例,展示了AutoIt基础的模拟键盘、鼠标操作,以及对GUI元素的控制。同时,介绍了处理系统弹窗和对话框的用法,使得AutoIt成为处理Windows平台自动化任务的有效工具。

5. Appium

5.1 简介
  • 用于移动应用自动化测试的开源框架,支持Android和iOS平台。
  • 提供了统一的API,使得测试脚本可以跨平台运行。
5.2 核心功能
  • 跨平台测试:支持在同一脚本中测试Android和iOS应用。
  • 多语言支持:可以使用多种编程语言编写测试脚本,如Python、Java、JavaScript等。
5.3 应用场景
  • 移动应用测试:适用于Android和iOS应用的自动化测试。
  • 跨平台应用自动化:支持测试跨平台的移动应用。
5.4 示例用法 - Python中使用Appium进行移动应用测试
from appium import webdriverdesired_caps = {
'platformName': 'Android',
'platformVersion': '9.0',
'deviceName': 'emulator-5554',
'app': '/path/to/app.apk'
}driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)# 执行测试操作
# ...driver.quit()
5.5 进阶用法 - 页面元素定位和操作
from appium import webdriver
from appium.webdriver.common.mobileby import MobileBydesired_caps = {
'platformName': 'Android',
'platformVersion': '9.0',
'deviceName': 'emulator-5554',
'app': '/path/to/app.apk'
}driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)# 定位并点击按钮
button = driver.find_element(MobileBy.ID, 'com.example.app:id/button')
button.click()# 输入文本
text_field = driver.find_element(MobileBy.ID, 'com.example.app:id/editText')
text_field.send_keys('Hello, Appium!')# 断言元素文本
assert 'Hello, Appium!' in text_field.textdriver.quit()

通过示例,展示了在Python中使用Appium进行移动应用测试的基础用法,包括初始化驱动、页面元素定位和操作。Appium提供了统一的API,使得开发者可以使用多种编程语言编写测试脚本,同时支持跨平台测试,是移动应用自动化测试的重要工具。

6. pywinauto

6.1 简介
  • 用于Windows GUI自动化的Python库,支持对Windows应用程序的自动化测试和操作。
  • 能够进行窗口和控件的识别与操作,支持多种控件类型。
6.2 核心功能
  • 窗口和控件的识别与操作:能够识别Windows应用程序的窗口和其中的各种控件,如按钮、文本框等。
  • 支持多种控件类型:对于不同的Windows应用程序,可以处理多种不同类型的控件。
6.3 应用场景
  • Windows平台应用的自动化测试:用于测试Windows应用程序的功能和用户界面。
  • 跨应用程序的操作:可以通过脚本实现不同Windows应用程序之间的自动化操作。
6.4 示例用法 - 使用pywinauto进行记事本自动化操作
from pywinauto.application import Application# 启动记事本应用程序
app = Application().start("notepad.exe")# 选择记事本窗口
dlg = app.UntitledNotepad# 输入文本到记事本
dlg.Edit.type_keys("Hello, pywinauto!")# 关闭记事本
dlg.menu_select("文件->退出")
6.5 进阶用法 - 控件的查找和操作
from pywinauto.application import Application
from pywinauto import mouse# 启动记事本应用程序
app = Application().start("notepad.exe")# 选择记事本窗口
dlg = app.UntitledNotepad# 查找“帮助”菜单并点击
dlg.menu_select("帮助->关于记事本")# 等待关于记事本对话框出现
about_dlg = app.window(title="关于记事本")# 使用鼠标点击“确定”按钮
mouse.click(coords=(about_dlg.rectangle().width() - 20, about_dlg.rectangle().height() - 20))# 关闭记事本
dlg.menu_select("文件->退出")

通过示例,展示了使用pywinauto进行Windows GUI自动化的基础用法,包括启动应用程序、选择窗口、输入文本、菜单选择等操作。pywinauto为测试Windows应用程序提供了方便且强大的工具,支持多种控件类型的自动化操作。

7. Playwright

7.1 简介
  • 用于浏览器自动化测试的Node库,支持多种浏览器和平台。
  • 提供了跨浏览器测试、截图和录制等功能。
7.2 核心功能
  • 跨浏览器测试:能够在多种主流浏览器中执行测试,确保Web应用的跨浏览器兼容性。
  • 支持截图和录制:可以截取页面截图,也支持录制用户操作。
7.3 应用场景
  • Web应用测试:适用于测试Web应用的功能和性能。
  • 跨浏览器兼容性测试:确保Web应用在不同浏览器中的正常运行。
7.4 示例用法 - 使用Playwright进行Web自动化测试
const { chromium } = require('playwright');(async () => {
const browser = await chromium.launch();
const context = await browser.newContext();
const page = await context.newPage();// 打开网页
await page.goto('https://example.com');// 截图
await page.screenshot({ path: 'screenshot.png' });// 执行测试操作
// ...await browser.close();
})();
7.5 进阶用法 - 用户操作录制
const { chromium } = require('playwright');(async () => {
const browser = await chromium.launch();
const context = await browser.newContext();
const page = await context.newPage();// 开始录制用户操作
await page.recordVideo({ dir: 'videos/' });// 打开网页
await page.goto('https://example.com');// 执行测试操作
// ...// 停止录制
const videoPath = await page.stopVideo();await browser.close();
})();

通过示例,展示了使用Playwright进行Web自动化测试的基础用法,包括启动浏览器、打开网页、截图等操作。Playwright提供了强大的跨浏览器测试能力,支持多种主流浏览器,同时还提供了录制用户操作的功能,方便测试和调试。

8. WinAppDriver

8.1 简介
  • WinAppDriver是用于Windows桌面应用和UWP应用的自动化测试工具。
  • 它支持多语言和多平台,并能够与多种测试框架集成。
8.2 核心功能
  • 自动化Windows应用程序: WinAppDriver能够模拟用户与Windows桌面应用和UWP应用的交互,使得自动化测试变得更加容易。
  • 支持多种编程语言: 测试脚本可以使用多种编程语言编写,如C#、Java、Python等,为开发人员提供了更大的灵活性。
8.3 应用场景
  • Windows桌面应用和UWP应用测试: 适用于测试Windows平台上的桌面应用和通用Windows平台应用,帮助开发人员确保应用程序在不同场景下的稳定性和正确性。
  • 跨平台自动化测试: WinAppDriver支持与其他自动化工具的整合,能够实现更复杂的测试流程,涵盖多个平台和应用层面。
8.4 示例用法
using OpenQA.Selenium.Appium.Windows;
using System;class Program
{
static void Main()
{
// 启动WinAppDriver
WindowsDriver<WindowsElement> session = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), DesiredCapabilities);// 执行测试操作
// ...// 关闭WinAppDriver
session.Quit();
}
}

上述示例代码展示了使用C#编写的简单WinAppDriver测试脚本的基本结构。在实际应用中,开发人员将会在执行测试操作的部分添加具体的测试逻辑,以验证应用程序的各个方面。

9. AutoHotKey

9.1 简介
  • AutoHotKey (AHK) 是一款强大的自动化脚本语言和工具,适用于Windows平台。
  • 它可以通过脚本实现键盘、鼠标操作以及对窗口的控制。
9.2 核心功能
  • 键盘和鼠标操作:能够模拟键盘按键和鼠标点击,实现自动化操作。
  • 窗口控制:支持对窗口的打开、关闭、最小化等操作。
9.3 应用场景
  • 快捷键和热键定义:通过脚本定义自定义快捷键,提高工作效率。
  • 窗口管理:自动控制窗口的位置、大小和状态,实现自定义布局。
9.4 示例用法
; 打开记事本
Run Notepad.exe; 等待记事本窗口出现
WinWaitActive Untitled - Notepad; 输入文本
SendInput Hello, AutoHotKey!{Enter}; 模拟按键组合:Ctrl + S(保存)
SendInput ^s; 等待保存对话框出现
WinWaitActive Save As; 输入文件名并保存到桌面
SendInput %A_Desktop%\AutoHotKey_Text.txt{Enter}; 等待记事本窗口再次出现
WinWaitActive Untitled - Notepad; 关闭记事本
WinClose

这个版本根据你的指示,将二级标题改为了四级标题,并保持了原始内容的格式和内容。

10. Winium

10.1 简介
  • Winium是一个用于Windows桌面应用自动化测试的开源框架。
  • 基于Selenium WebDriver,提供了对Windows应用程序的自动化测试能力。
10.2 核心功能
  • 自动化Windows桌面应用:能够识别和操作Windows应用程序的控件。
  • 与Selenium集成:提供了类似Selenium的API,方便使用熟悉的方式编写测试脚本。
10.3 应用场景
  • Windows桌面应用测试:适用于测试各种Windows桌面应用的功能和用户界面。
  • Selenium用户的扩展:对于熟悉Selenium的用户,提供了类似的测试体验。
10.4 示例用法
WiniumDriver driver = new WiniumDriver(new URL("http://localhost:9999"), capabilities);// 执行测试操作
// ...driver.quit();

这是关于 Winium 框架的信息,提供了它的简介、核心功能、应用场景和一个示例用法。Winium 是一个专注于 Windows 桌面应用自动化测试的开源框架,它基于 Selenium WebDriver,并能够操作 Windows 应用程序的控件,同时提供了与 Selenium 类似的 API 以便于编写测试脚本。

11. AutoPy

11.1 简介
  • AutoPy是一个Python库,用于模拟鼠标和键盘操作,实现自动化任务和交互。
  • 支持屏幕截图、图像识别等功能,使得自动化操作更加灵活。
11.2 核心功能
  • 鼠标和键盘模拟:模拟鼠标点击、移动和键盘输入,实现用户界面的自动化。
  • 屏幕截图和图像识别:能够截取屏幕区域,识别图像,实现更智能的自动化操作。
11.3 应用场景
  • GUI自动化测试:适用于需要模拟用户交互的图形用户界面测试。
  • 屏幕录制和回放:通过脚本记录用户操作,实现屏幕录制和回放。
11.4 示例用法
from autopilot.input import press, key_press, key_release, mouse_click
from autopilot.capture import capture_screen# 模拟键盘输入
key_press('a')
key_release('a')# 模拟鼠标点击
mouse_click()# 截取屏幕区域并保存为图片
screenshot = capture_screen(region=(0, 0, 100, 100))
screenshot.save('screenshot.png')

以上信息介绍了 AutoPy 库,包括其简介、核心功能、应用场景以及一个示例用法。AutoPy 是一个 Python 库,用于模拟鼠标和键盘操作,支持屏幕截图和图像识别等功能,可用于自动化任务、GUI 测试以及屏幕录制和回放等用途。

总结

通过对pyautogui、Robot Framework、SikuliX、AutoIt、Appium、pywinauto、Playwright、WinAppDriver、AutoHotKey、Winium和AutoPy等工具的深入介绍,我们展现了它们在不同领域的独特优势。这些工具共同构成了Python自动化的丰富生态,为开发者提供了强大的工具箱,助力他们在自动化领域取得更大的成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaEE进阶学习:Bean 作用域和生命周期

1.Bean 作用域 .通过一个案例来看 Bean 作用域的问题 假设现在有一个公共的 Bean&#xff0c;提供给 A 用户和 B 用户使用&#xff0c;然而在使用的途中 A 用户却“悄悄”地修改了公共 Bean 的数据&#xff0c;导致 B 用户在使用时发生了预期之外的逻辑错误。 我们预期的结果…

colab notebook导出为PDF

目录 方法一&#xff1a;使用浏览器打印功能 方法二&#xff1a;使用nbconvert转换 方法三&#xff1a;在线转换 方法一&#xff1a;使用浏览器打印功能 一般快捷键是CTRLP 然后改变目标打印机为另存为PDF 这样就可以将notebook保存为PDF了 方法二&#xff1a;使用nbconver…

芯片技术前沿:了解构现代集成电路的设计与制造

芯片技术前沿&#xff1a;解构现代集成电路的设计与制造 摘要&#xff1a;本文将深入探讨芯片技术的最新进展&#xff0c;重点关注集成电路的设计与制造。我们将带领读者了解芯片设计的基本流程&#xff0c;包括电路分析、版图设计和验证等步骤&#xff0c;并介绍当前主流的制…

强化学习中的深度Q网络

深度 Q 网络&#xff08;Deep Q-Network&#xff0c;DQN&#xff09;是一种结合了深度学习和强化学习的方法&#xff0c;用于解决离散状态和离散动作空间的强化学习问题。DQN 的核心思想是使用深度神经网络来近似 Q 函数&#xff0c;从而学习复杂环境中的最优策略。 以下是 DQN…

Kubernetes之kubeadm日志展示篇—K8S私有云worker节点gluster安装部署

文章目录 一. 服务器信息1.1 环境准备1.2 配置hosts解析记录 二. 安装与部署2.1 配置仓库 &#xff08;所有节点&#xff09;2.2 安装服务 &#xff08;所有节点&#xff09;2.3 启动服务 &#xff08;所有节点&#xff09;2.4 配置资源池 &#xff08;主节点&#xff09;2.5 创…

【C++】日期类的实现

在上篇博客中我们已经学习了C中的运算符重载&#xff0c;我们说&#xff0c;操作符只能对于内置类型进行操作&#xff0c;对自定义类型我们需要自己定义函数去实现一系列的操作 那么这篇博客我们就专门把日期这个类单独拿出来写一下它都有哪些有意义的可以重载的运算符&#xf…

从苹果到蔚来,「车手互联」网罗顶级玩家

作者 |Amy 编辑 |德新 汽车作为家之外的第二大移动空间&#xff0c;正与手机这一移动智能终端进行「车手互联」。 车手互联始于十年前的苹果CarPlay&#xff0c;一度成为时代弄潮儿&#xff0c;不断有后继者模仿并超越。时至今日&#xff0c;CarPlay2.0依旧停留在概念阶段&am…

RK3568笔记六:基于Yolov8的训练及部署

若该文为原创文章&#xff0c;转载请注明原文出处。 基于Yolov8的训练及部署&#xff0c;参考鲁班猫的手册训练自己的数据集部署到RK3568,用的是正点的板子。 1、 使用 conda 创建虚拟环境 conda create -n yolov8 python3.8 ​ conda activate yolov8 2、 安装 pytorch 等…

osgFX扩展库-异性光照、贴图、卡通特效(1)

本章将简单介绍 osgFX扩展库及osgSim 扩展库。osgFX库用得比较多,osgSim库不常用&#xff0c;因此&#xff0c;这里只对这个库作简单的说明。 osgFX扩展库 osgFX是一个OpenSceneGraph 的附加库&#xff0c;是一个用于实现一致、完备、可重用的特殊效果的构架工具&#xff0c;其…

UE 事件分发机制 day9

观察者模式原理 观察者模式通常有观察者与被观察者&#xff0c;当被观察者状态发生改变时&#xff0c;它会通知所有的被观察者对象&#xff0c;使他们能够及时做出响应&#xff0c;所以也被称作“发布-订阅模式”。总得来说就是你关注了一个主播&#xff0c;主播的状态改变会通…

Fabric:搭建自定义网络

Hyperledger Fabric: V2.5.4 写在最前 从本篇博客开始&#xff0c;将陆续介绍使用Fabric搭建自定义网络及部署执行链码的过程。本篇主要介绍如何搭建网络。   由于前文在安装Fabric的时候&#xff0c;已经将目录fabric-samples/bin加入到了环境变量PATH中&#xff0c;所以正文…

数据结构 / day01 作业

1.定义结构体数组存储5个学生的信息&#xff1a;姓名&#xff0c;年龄&#xff0c;性别 定义函数实现输入&#xff0c;要求形参使用结构体指针接收 函数实现5个学生年龄排序(注意对年龄排序时&#xff0c;交换的是所有信息) 定义函数实现输出&#xff0c;要求形参使用结构体…

(5h)Unity3D快速入门之Roll-A-Ball游戏开发

DAY1&#xff1a;Unity3D安装 链接 DAY2&#xff1a;构建场景&#xff0c;编写代码 链接 内容&#xff1a;WASD前后左右移动、摄像机跟随 DAY3&#xff1a;待更新 DAY4&#xff1a;待更新 DAY5&#xff1a;待更新

jekins CVE-2018-1000861 漏洞复现

jekins CVE-2018-1000861 漏洞复现 ‍ 名称: jenkins 命令执行 &#xff08;CVE-2018-1000861&#xff09; 描述: ​Jenkins 可以通过其网页界面轻松设置和配置,其中包括即时错误检查和内置帮助。 插件 通过更新中心中的 1000 多个插件,Jenkins 集成了持续集成和持续交付工具…

INFINI Gateway 与华为鲲鹏完成产品兼容互认证

何为华为鲲鹏认证 华为鲲鹏认证是华为云围绕鲲鹏云服务&#xff08;含公有云、私有云、混合云、桌面云&#xff09;推出的一项合作伙伴计划&#xff0c;旨在为构建持续发展、合作共赢的鲲鹏生态圈&#xff0c;通过整合华为的技术、品牌资源&#xff0c;与合作伙伴共享商机和利…

AI大模型相关产品的数据飞轮如何建设?

1、背景 数据飞轮&#xff0c;是今年大模型带火的一个典型词汇&#xff0c;通过客户在应用程序中输入的提示词这样的数据反馈&#xff0c;使大模型快速迭代。简单说&#xff1a;好的产品 -> 更多的用户数据 -> 更好的模型质量 -> 更好的产品就进入了一个正向循环。一…

【Apifox】测试工具自动编写接口文档

在开发过程中&#xff0c;我们总是避免不了进行接口的测试&#xff0c; 而相比手动敲测试代码&#xff0c;使用测试工具进行测试更为便捷&#xff0c;高效 今天发现了一个非常好用的接口测试工具Apifox 相比于Postman&#xff0c;他还拥有一个非常nb的功能&#xff0c; 在接…

小白备战蓝桥杯:Java基础语法

一、注释 IDEA注释快捷键&#xff1a;Ctrl / 单行注释&#xff1a; //注释信息 多行注释&#xff1a; /* 注释信息 */ 二、字面量 常用数据&#xff1a;整数、小数、字符串&#xff08;双引号&#xff09;、字符&#xff08;单引号&#xff09;、布尔值&#xff08;tr…

【C++核心】一文理解C++面向对象(超级详细!)

一. 类和对象 C面向对象的三大特性为&#xff1a;封装、继承、多态 C认为万事万物都皆为对象&#xff0c;对象上有其属性和行为 例如&#xff1a; ​ 人可以作为对象&#xff0c;属性有姓名、年龄、身高、体重…&#xff0c;行为有走、跑、跳、吃饭、唱歌… ​ 车也可以作…

JavaScript 的 DOM 知识点有哪些?

文档对象模型&#xff08;Document Object Model&#xff0c;简称 DOM&#xff09;&#xff0c;是一种与平台和语言无关的模型&#xff0c;用来表示 HTML 或 XML 文档。文档对象模型中定义了文档的逻辑结构&#xff0c;以及程序访问和操作文档的方式。 当网页加载时&#xff0…