自动化测试介绍及学习路线
目录
一、自动化测试
1.1 自动化测试的概念
1.2 自动化测试的主流领域
接口自动化测试
UI自动化测试
持续集成
二、学习路线
一、自动化测试
1.1 自动化测试的概念
自动化测试是指利用软件工具或脚本来执行测试用例和比较实际结果与预期结果的过程,通过运行程序来代替人验证软件质量的过程。
优点 | 适用场景 |
---|---|
提高效率 | 项目周期长 |
减少工作量,节约成本 | 项目需求不容易变化(周期长或频率低) |
很方便地进行兼容性测试 | 手工测试完成后,系统相对稳定了之后适合引入自动化测试 |
进行回归测试 | 频繁的回归测试 |
增加测试覆盖率,精度高 |
自动化测试流程:
需求分析--决定是否做自动化
工具准备--选择工具
计划制定--制定测试计划
用例选择--筛选手工测试的测试用例
脚本开发--开发测试脚本(搭建测试用例框架和编写测试用例)
脚本执行--执行测试脚本
脚本管理--调整修改脚本
报告出具--撰写测试报告
1.2 自动化测试的主流领域
具体可参考博主:自动化测试学习步骤及路线(超详细)_自动化测试教程-CSDN博客
自动化测试在当前市场上应用非常广泛,主流有接口自动化测试和UI自动化测试。在此基础上,加上持续集成,就能实现全自动化测试。
-
接口自动化测试
目前市场上大部分项目,都是前后端分离的项目,由此产生了大量的接口。而接口自动化测试,主要是对接口进行测试,通过编写代码或使用工具,模拟客户端向服务器发送请求,验证服务器返回的响应是否符合预期,主要针对系统之间或模块之间的接口进行功能、性能、稳定性等方面的自动化测试
常用工具
- Postman meter:一款功能强大的 API 测试工具,提供了图形化界面,方便用户发送各种 HTTP 请求,并对响应进行验证和分析,也支持通过编写脚本实现自动化测试。
- JMeter:主要用于性能测试,但也具备强大的接口测试功能,可模拟大量用户并发访问接口,对接口的性能指标进行监测和分析。
- Requests:Python 的一个 HTTP 库,通过简单的代码即可发送 HTTP 请求和处理响应,常用于编写接口自动化测试脚本,与 unittest、pytest 等测试框架结合使用。
- Flider/Charles:一款强大的 Web 调试代理工具。它能截获客户端和服务器之间的 HTTP 和 HTTPS 通信数据,帮助测试人员定位接口问题。同时,它还支持设置断点、修改请求参数等操作,方便进行接口的调试和验证
-
UI自动化测试
UI 自动化测试是通过编写自动化脚本,模拟用户在图形界面上的操作,如点击按钮、输入文本、选择菜单等,来验证软件界面的功能和交互是否正确。
UI自动化测试中,有一种很关键的思想,叫做“关键字驱动”测试,专门用来解决UI自动化测试脚本开发和维护的问题。 那么怎么学习UI自动化测试呢? 在这里,我们可以先学习Web自动化测试,再学习App自动化测试。
常用工具
- Selenium:一款广泛使用的 Web UI 自动化测试工具,支持多种编程语言,如 Python、Java 等。它提供了丰富的 API,可操作浏览器进行各种页面元素的定位和操作,以模拟用户在浏览器中的操作,如点击、输入等,用于验证Web应用的UI和功能
- Appium:用于移动应用 UI 自动化测试的工具,支持 iOS 和 Android 平台,通过Appium可以模拟用户在移动设备上的操作,如点击、滑动等,用于验证移动应用的UI和功能。
- UIAutomator:Android 官方提供的 UI 自动化测试框架,主要用于 Android 应用的 UI 自动化测试,可通过命令行或编写 Java 代码来操作 Android 应用的界面元素。
- Robot Framework:基于Python可扩展的关键字驱动的测试自动化框架,是一个通用的自动化测试框架,支持多种测试类型,包括UI自动化测试。它提供了易于使用的关键字驱动方法,支持多种扩展库和插件。
Web自动化测试
Web 测试是指通过编写自动化脚本,模拟用户在 Web 浏览器中的各种操作,如点击按钮、输入文本、选择下拉框等,来验证 Web 应用程序的用户界面(UI)是否符合预期设计,功能是否正常工作的过程。其目的是确保 Web 应用在不同浏览器、不同分辨率和不同操作系统下都能提供一致且良好的用户体验。
常用工具
- Selenium
- 简介:是最流行的 Web UI 自动化测试工具之一,支持多种编程语言(如 Python、Java、C# 等),并且可以与多种测试框架(如 unittest、pytest、JUnit 等)集成。
- 特点:提供了丰富的 API 用于定位和操作 Web 页面元素,支持多种浏览器(如 Chrome、Firefox、Safari 等),还可以实现分布式测试。
- Puppeteer
- 简介:是一个 Node.js 库,它提供了一个高级 API 来控制 Chrome 或 Chromium 浏览器。
- 特点:可以方便地进行页面截图、生成 PDF、爬取数据等操作,性能较高,适合用于自动化测试和网页爬虫等场景。
- Playwright
- 简介:是微软开发的跨浏览器自动化测试工具,支持 Chrome、Firefox、Safari 等多种浏览器。
- 特点:提供了简洁易用的 API,支持多浏览器并行测试,能够快速编写高效的自动化测试脚本。
- Robot Framework
- 简介:是一个通用的自动化测试框架,采用关键字驱动的方式,具备良好的可扩展性和可读性。它本身不直接针对 Web 测试,但有丰富的库(如 SeleniumLibrary)可用于 Web UI 自动化测试。
- 特点:测试用例使用简单的文本格式编写,易于理解和维护,即使是非技术人员也能参与到测试用例的编写中。同时,它支持与多种工具集成,方便在不同的测试环境中使用。
测试流程
- 需求分析:明确 Web 应用的功能需求和 UI 设计要求,确定需要测试的页面和操作流程。
- 环境搭建:安装测试工具和相关依赖,配置浏览器驱动,确保测试环境正常运行。
- 测试计划
- 用例设计
- 脚本编写:根据测试用例,使用选定的编程语言和测试工具编写自动化测试脚本,拟用户在浏览器中的操作,如点击、输入、选择等,以验证页面的交互功能是否正常
- 脚本执行:运行自动化测试脚本,记录测试结果,查看是否有测试用例失败。
- 结果分析:对测试结果进行分析,找出失败的原因,如元素定位失败、页面加载超时、功能逻辑错误等,并及时反馈给开发人员进行修复。
- 缺陷管理:将发现的缺陷记录在缺陷管理系统中,并跟踪处理过程
- 持续集成:将WEB自动化测试与持续集成工具(如Jenkins、Travis CI)结合,在每次代码变更时自动运行测试,确保代码质量。
App自动化测试
APP 测试是指利用自动化测试工具和脚本,模拟用户在移动应用(APP)上的各种操作,如点击、滑动、输入等,以此来验证 APP 的用户界面(UI)是否符合设计要求,功能是否能够正常运行。其目的在于确保 APP 在不同的移动设备(如手机、平板)、不同的操作系统版本(如 Android、iOS)下,都能为用户提供稳定、流畅且符合预期的使用体验。
常用工具
- Appium
- 简介:是一个开源的自动化测试工具,支持 Android 和 iOS 平台上的原生应用、移动网页应用和混合应用。它基于 Selenium WebDriver 架构,使用标准的 WebDriver JSON Wire Protocol 来与移动设备进行通信。
- 特点:支持多种编程语言(如 Java、Python、Ruby 等),开发人员可以根据自己的熟悉程度选择合适的语言编写测试脚本。同时,Appium 可以与多种测试框架集成,方便进行测试用例的管理和执行。
- UIAutomator(Android)
- 简介:是 Android 官方提供的 UI 自动化测试框架,用于测试 Android 应用的 UI 交互。它可以在不依赖应用源码的情况下,对应用的 UI 元素进行定位和操作。
- 特点:具有较高的性能和稳定性,能够准确地模拟用户在 Android 设备上的各种操作。由于是官方框架,与 Android 系统的兼容性较好。
- XCUITest(iOS)
- 简介:是苹果公司为 iOS 应用开发的 UI 自动化测试框架,集成在 Xcode 开发工具中。它可以帮助开发者编写和运行针对 iOS 应用的 UI 测试用例。
- 特点:与 iOS 系统和 Xcode 开发环境紧密集成,提供了丰富的 API 用于定位和操作 iOS 应用的 UI 元素。使用 Swift 或 Objective - C 语言编写测试脚本,方便开发者在开发过程中进行测试。
测试流程
- 需求分析:深入了解 APP 的功能需求、UI 设计和用户交互流程,确定需要测试的功能模块和界面元素。
- 环境搭建:根据选择的测试工具,安装相应的开发环境和依赖库,配置移动设备或模拟器,确保测试工具能够与设备正常通信。
- 测试计划
- 用例设计
- 脚本编写:根据测试用例,使用选定的编程语言和测试工具编写自动化测试脚本,模拟用户在 APP 上的操作步骤,并对操作结果进行验证。
- 脚本执行:将测试脚本部署到移动设备或模拟器上运行,记录测试过程中的日志和结果,查看是否有测试用例失败。
- 结果分析:对测试结果进行详细分析,找出失败的原因,如元素定位失败、功能逻辑错误、兼容性问题等,并及时反馈给开发人员进行修复。
- 缺陷管理:将发现的缺陷记录在缺陷管理系统中,并跟踪处理过程
- 持续集成:将 APP 自动化测试脚本集成到持续集成 / 持续交付(CI/CD)流程中,在每次代码更新后自动运行测试,确保 APP 的质量稳定。
持续集成
深入了解持续集成可参考博主:黑马Jenkins教程笔记(一):介绍持续集成概念(Continuous integration,简称 CI)(持续集成三要素:自动构建、版本控制、持续集成服务器(引出Jenkins))-CSDN博客
持续集成(Continuous Integration,简称CI)是一种软件开发实践,通过自动化构建和测试来加快软件开发过程中代码的集成和验证。在持续集成中,开发人员将代码频繁地集成到共享的主干代码库中,并通过自动化的构建和测试流程来验证代码的正确性,即代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成
持续集成有助于减少代码集成时可能出现的错误,提高代码质量,加快软件交付速度,并促进团队协作和沟通。通过持续集成,开发团队可以更快地发现和解决问题,保持代码库的健康状态,确保软件项目的稳定性和可靠性。
常用工具
- Jenkins:一款开源的持续集成工具,具有丰富的插件生态系统,支持各种类型的项目构建和多种版本控制系统,可以方便地与自动化测试工具集成,实现自动化测试的持续执行。
- GitLab CI/CD:与 GitLab 代码托管平台紧密集成,提供了基于 GitLab 的持续集成和持续部署解决方案,用户可以在 GitLab 项目中方便地配置 CI/CD 流水线,定义构建、测试和部署的流程。
- TeamCity:由 JetBrains 开发的持续集成服务器,提供了直观的用户界面和强大的功能,支持多种编程语言和构建工具,能够很好地与 IntelliJ IDEA 等开发工具集成。
- Azure DevOps:微软提供的一站式 DevOps 平台,包含了持续集成、持续交付、项目管理、代码管理等功能,与微软的技术栈(如.NET)集成度高,同时也支持多种其他技术和平台。
集成流程
- 代码提交:开发人员完成一定功能的开发后,将代码提交到版本控制系统,如 Git、SVN 等。
- 触发集成:代码提交后,持续集成工具会监测到代码的变化,自动触发集成过程,从版本控制系统中获取最新的代码。
- 静态代码分析:通过静态代码分析工具(如SonarQube)来检查代码质量,发现潜在的问题和代码规范违规。
- 自动化构建项目:使用自动化构建工具(如Jenkins、TeamCity等)来自动构建应用程序。构建过程中会编译代码、运行单元测试等
- 自动化测试:构建完成后,自动执行预先编写好的自动化测试用例,包括单元测试、集成测试、功能测试、UI 测试等。测试框架如 JUnit、TestNG、Selenium、Appium 等会被用于执行这些测试,确保代码变更不会引入新的问题。
- 测试结果反馈:自动化测试执行完毕后,持续集成工具会生成详细的测试报告,展示测试结果。如果测试全部通过,表明本次集成成功,代码可以继续后续的流程;如果有测试用例失败,会及时通知相关开发人员,以便他们快速定位和修复问题。
- 自动化部署与发布:如果集成和测试都成功,持续集成系统可以根据配置自动将软件部署到测试环境或生产环境,实现软件的快速迭代和发布。可以使用部署工具(如Ansible、Docker等)来自动化部署过程
- 部署结果反馈:
作用:
-
提高工作效率:持续集成可将开发人员从手动任务中解放出来,并且鼓励有助于减少发布到客户环境中的错误和缺陷数量的行为,从而提高团队的工作效率
-
早期发现错误:每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易
-
提高代码质量:通过持续集成,团队可以保持代码库的整洁和稳定,减少bug和技术债务的积累。防止分支大幅偏离主干,如果不经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成
-
快速得到反馈:任何时间、任何地点生成可部署的软件,出现问题,项目成员会被马上通知到,问题第一时间修复
-
加强团队协作:持续集成鼓励团队成员频繁地提交代码并与他人集成,促进团队协作和沟通,有助于快速解决问题
-
减少人工干扰:从检测代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的
深入了解持续集成相关知识可查看博文:什么是持续集成(持续交付、部署)-CSDN博客
二、学习路线
本专栏前置学习:Python学习路线_lastriches的博客-CSDN博客
前置知识:前端Web基础,数据库增删改查等命令
-
第一步:先学python(python不过关,别谈自动化)
-
第二步:Selenium框架
-
第三步:unittest框架
-
第四步:项目
-
第五步:Robot Framwork框架
相关文章:
自动化测试介绍及学习路线
目录 一、自动化测试 1.1 自动化测试的概念 1.2 自动化测试的主流领域 接口自动化测试 UI自动化测试 持续集成 二、学习路线 一、自动化测试 1.1 自动化测试的概念 自动化测试是指利用软件工具或脚本来执行测试用例和比较实际结果与预期结果的过程,通过运行…...
Python:函数(一)
python函数相关的知识点 1. 函数定义与调用 定义:使用 def 关键字,后接函数名和参数列表。 def greet(name):"""打印问候语(文档字符串)"""print(f"Hello, {name}!") 调用:…...
qml c++混合编程注意事项
在Qml和C类进行数据交互时,通用的办法都是注册C到Qml中,但是很多时候C的对象是在C中进行创建,如果在Qml中创建了,数据之间的交互就会出现无法控制的问题。 信号与槽、上下文等都是数据交互的方式,但是当嵌套多层时&…...
Leetcode6-Z字形变换
题目链接:6. Z 字形变换 - 力扣(LeetCode) 思路: 定义numRows个字符数组,用于存每一行的字符;再定义一个标志行数的变量cnt,cnt在0到numRows-1之间不停的加一或减一(当cnt到0了&am…...
【eNSP实战】配置交换机端口安全
拓扑图 目的:让交换机端口与主机mac绑定,防止私接主机。 主机PC配置不展示,按照图中配置即可。 开始配置之前,使用PC1 ping 一遍PC2、PC3、PC4、PC5,让交换机mac地址表刷新一下记录。 LSW1查看mac地址表 LSW1配置端…...
React.js 基础与进阶教程
React.js 基础与进阶教程 React.js 是由 Facebook 开发的流行前端 JavaScript 库,专为构建用户界面(UI)设计,尤其适用于单页面应用(SPA)。它采用组件化开发模式,使 UI 结构更加清晰、可维护性更…...
Docker基础入门(一)
初识Docker 什么是Docker Docker是一个快速交付应用、运行应用的技术: 可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统运行时利用沙箱机制形成隔离容器,各个应用互不干扰启动、移除都可以通过一行命令完成&…...
moment.js时间处理库
目录 一、moment().isValid()验证时间是否有效 二、moment().second()获取秒数或者设置秒数 三、moment().day()获取星期或者设置星期 四、moment().add()加法操作 五、moment().subtract()减法操作 六、moment.max()最大值 七、moment.min()最小值 八、克隆时间 一、mo…...
基于hive的电信离线用户的行为分析系统
标题:基于hive的电信离线用户的行为分析系统 内容:1.摘要 随着电信行业的快速发展,用户行为数据呈现出海量、复杂的特点。为了深入了解用户行为模式,提升电信服务质量和精准营销能力,本研究旨在构建基于 Hive 的电信离线用户行为分析系统。通…...
循环神经网络(RNN):时序建模的核心引擎与演进之路
在人工智能处理序列数据的战场上,循环神经网络(RNN)如同一个能够理解时间的智者。从 2015 年谷歌神经机器翻译系统颠覆传统方法,到 2023 年 ChatGPT 实现对话连续性,这些突破都植根于 RNN 对时序建模的深刻理解。本文将…...
docker 安装常用镜像
我们在上篇文章中已经修改了daemon.json 安装镜像时如果search超时就直接pull 安装mysql docker pull mysql:5.7 启动命令 docker run --name mysql-docker -p 3306:3306 -e MYSQL_ROOT_PASSWORDroot1234 -d mysql:5.7 ocker run:运行docker容器命令 --name my…...
大数据学习(63)- Zookeeper详解
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦🤞 …...
安卓Compose中accompanist库使用详解
安卓Compose中accompanist库使用详解 文章目录 安卓Compose中accompanist库使用详解一、Accompanist 库概览二、核心组件详解三、总结与建议 本文首发地址 https://h89.cn/archives/348.html 最新更新地址 https://gitee.com/chenjim/chenjimblog 一、Accompanist 库概览 Acco…...
Gateway:网关路由与登录鉴权
在微服务架构中,用户登录和身份校验的处理方式确实与单体应用有所不同。在单体架构中,一旦用户通过身份验证,其会话信息可以在整个应用范围内共享,所有模块都能访问到用户信息。然而,在微服务架构下,每个服…...
【MySQL篇】MySQL内置函数
目录 1,日期函数 2,字符串函数 3,数学函数 4,其他函数 实战OJ 1,日期函数 日期类型在之前文章【数据类型】中有描述 传送门:【MySQL篇】数据类型_mysql 数据类型-CSDN博客 函数名称描述current_dat…...
爬虫案例十三js逆向模拟登录中大网校
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、网站分析二、代码 前言 提示:这里可以添加本文要记录的大概内容: js 逆向模拟登录中大网校 提示:以下是本篇文章正文内…...
高效编程指南:PyCharm与DeepSeek的完美结合
DeepSeek接入Pycharm 前几天DeepSeek的充值窗口又悄悄的开放了,这也就意味着我们又可以丝滑的使用DeepSeek的API进行各种辅助性工作了。本文我们来聊聊如何在代码编辑器中使用DeepSeek自动生成代码。 注:本文适用于所有的JetBrains开发工具,…...
前馈神经网络 - 参数学习(优化问题)
神经网络的参数学习比线性模型要更加困难,主要原因有两点:(1)非凸优化问题和 (2)梯度消失问题,本文我们来学习和分析这两类问题。 一、非凸优化问题 1、非凸优化问题演示: 神经网络的优化问题是一个非凸优化问题。 …...
AI 大模型统一集成|如何封装多个大模型 API 调用
🌟 在这系列文章中,我们将一起探索如何搭建一个支持大模型集成项目 NexLM 的开发过程,从 架构设计 到 代码实战,逐步搭建一个支持 多种大模型(GPT-4、DeepSeek 等) 的 一站式大模型集成与管理平台ÿ…...
C语言学习day25:WinAPI编程进阶06-游戏辅助窗体监视热键讲解
我们上一章已经绘制出了植物大战僵尸的一个页面 但是我们要怎么样去判断,用户是否按了F1呢。好的接下来就是我们的内容,监视热键。 思路: 我们按下的是键盘,因此我们得用键盘消息,也是:WM_KEYDOWN 同时要…...
JVM常用概念之常量
问题 final修饰的字段就一定是不能重新赋值吗? 基础知识 常量变量是使用常量表达式初始化的原始类型或 String 类型的最终变量。变量是否为常量变量可能对类初始化、二进制兼容性和明确赋值有影响。 —Java 语言规范 实验 用例源码-重新赋值 import java.lang.reflect.Fie…...
【Vue】el-dialog的2种封装方法(父子组件双向通信),$emit触发父事件/.sync修饰符双向绑定
🤵 作者:coderYYY 🧑 个人简介:前端程序媛,目前主攻web前端,后端辅助,其他技术知识也会偶尔分享🍀欢迎和我一起交流!🚀(评论和私信一般会回!!) 👉 个人专栏推荐:《前端项目教程以及代码》 前言 在现代Vue.js开发中,el-dialog组件作为ElementUI库中的一个…...
解决远程主机允许路由转发 【原理扫描】:将/proc/sys/net/ipv4/ip_forward 置为0
解决远程主机允许路由转发 【原理扫描】:将/proc/sys/net/ipv4/ip_forward 置为0 解决远程主机允许路由转发 【原理扫描】:将/proc/sys/net/ipv4/ip_forward 置为0问题描述解决方案临时修改永久生效验证配置 影响 解决远程主机允许路由转发 【原理扫描】…...
c++20 Concepts的简写形式与requires 从句形式
c20 Concepts的简写形式与requires 从句形式 原始写法(简写形式)等效写法(requires 从句形式)关键区别说明:组合多个约束的示例:两种形式的编译结果:更复杂的约束示例:标准库风格的约…...
安装oVirt环境
1. oVirt Engine 硬件要求 资源最低推荐 中央处理器 双核 x86_64 CPU. 一个四核 x86_64 CPU 或多个双核 x86_64 CPU。 记忆 4 GB 的可用系统 RAM(如果未安装 Data Warehouse 且现有进程未占用内存)。 16 GB 的系统 RAM。 硬盘 25 GB 本地可访问的…...
【 <一> 炼丹初探:JavaWeb 的起源与基础】之 Tomcat 的工作原理:从启动到请求处理的流程
<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、Tomcat…...
【认识OpenThread协议】
OpenThread 是一种基于 IPv6 、IEEE 802.15.4 标准的低功耗无线 Mesh 网络协议,主要用于智能家居、物联网设备等场景。它的设计目标是实现设备之间的高效通信、低功耗运行和高可靠性。 OpenThread官方文档 ① 特性 低功耗: 适合电池供电的设备。 Mesh 网络: 支持多…...
Qt入门笔记
目录 一、前言 二、创建Qt项目 2.1、使用向导创建 2.2、最简单的Qt应用程序 2.2.1、main函数 2.2.2、widget.h文件 2.2.3、widget.cpp文件 2.3、Qt按键Botton 2.3.1、创建一个Botton 2.3.2、信号与槽 2.3.3、按键使用信号与槽的方法 2.4、文件Read与Write-QFile类 2…...
【前端】【nuxt】几种在 Nuxt 客户端使用console的方式
方法1:在Vue生命周期钩子中使用 只在客户端执行的钩子(如mounted)中打印: export default {mounted() {console.log(仅在客户端显示, this.$route.path)} }方法2:通过环境判断 使用process.client判断当前环境&…...
安装 ubuntu 2404 LTS 服务器 设置 服务器名称
安装 ubuntu服务器 设置 服务器名称 hostname 打开终端(Terminal),通过快捷键CtrlAltT或在应用程序中搜索"终端"来打开;在终端中输入以下命令:hostname,然后按下回车键即可查看本机服务器名称。…...
C语言一维数组
学习任何数据结构,都可以分为三个主要步骤: 了解基本概念:首先,我们需要理解数据结构的基本概念。以数组为例,首先要知道什么是数组,数组的定义是什么。数组是一种存储固定大小的元素集合的数据结构,它的元素类型是统一的,且通过索引访问。 了解数组的构造和内存分布:…...
霍夫变换法是基于传统视觉特征的道路车道线检测算法中的一种经典方法
霍夫变换法是基于传统视觉特征的道路车道线检测算法中的一种经典方法,以下是对它的详细介绍: 基本原理 霍夫变换的基本思想是将图像空间中的点映射到参数空间中,通过在参数空间中寻找峰值来确定图像中特定形状的参数。在车道线检测中&#…...
静态时序分析:SDC约束命令set_ideal_latency详解
相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 当使用set_ideal_network命令将当前设计中的一组端口或引脚标记为理想网络源后,理想属性会沿着组合逻辑进行传播,理想网络中的线网和单元…...
DeepSeek引领端侧AI革命,边缘智能重构AI价值金字塔
目录 一、AI从“技术炫耀”到“价值兑现” 二、边缘侧部署:从技术挑战到商业必然 三、小规模模型:精度与效率的再平衡 四、Coovally的前瞻性:降低边缘AI开发门槛 五、生产级部署:跨越从实验室到车间的鸿沟 六、未来演进&…...
完整例子和调用关系qt OpenGL
项目结构 首先,你需要在 Qt 项目中创建一个类,继承自 QOpenGLWidget 来进行 OpenGL 渲染。文件结构如下: - main.cpp - MyOpenGLWidget.h - MyOpenGLWidget.cpp - vertex_shader.glsl - fragment_shader.glsl 1. main.cpp 这是 Qt 项目的入口…...
SpringBoot缓存抽象:@Cacheable与缓存管理器配置
文章目录 引言一、SpringBoot缓存抽象概述二、Cacheable注解详解2.1 Cacheable的关键属性 三、缓存管理器配置四、自定义键生成策略五、缓存同步与失效策略六、SpringBoot缓存最佳实践总结 引言 缓存是提升应用性能的关键技术,SpringBoot提供了强大的缓存抽象层&am…...
环路广播风暴演示图
以下是环路广播风暴的演示图及其说明: 环路广播风暴演示图 ----------------- ----------------- | Switch A | | Switch B | | | | | | [Port1]--------------------------[Port1] |…...
【webrtc debug tools】 rtc_event_log_to_text
一、rtc_event_log 简介 在学习分析webrtc的过程中,发现其内部提供了一个实时数据捕获接口RtcEventLog。通过该接口可以实时捕获进出webrtc的RTP报文头数据、音视频配置参数、webrtc的探测数据等。其内容实现可参考RtcEventLogImpl类的定义。其文件所在路径 loggin…...
【统计至简】【古典概率模型】联合概率、边缘概率、条件概率、全概率
联合概率、边缘概率、条件概率 联合概率边缘概率条件概率全概率 一副标准扑克牌有 54 张,包括 52 张常规牌(13 个点数,每个点数有 4 种花色)和 2 张王(大、小王)。我们从中随机抽取一张牌,定义以…...
Linux 字符设备驱动实例
编写驱动程序,并将内核模块加载到内核中,等待被用户程序调用。 在控制台中借助第一步申请到的设备号,使用 mknod 命令创建一个设备节点,并拟一个设备名称。 在用户程序中,使用 open 打开第二步中的设备名称ÿ…...
【git】【网络】【项目配置运行】HTTP 协议的微型简易 Web 服务器---tinyEasyMuduoWebServer
【git】【网络】【项目配置运行】HTTP 协议的微型简易 Web 服务器—tinyEasyMuduoWebServer csdn项目: 原文链接:https://blog.csdn.net/weixin_45178775/article/details/122257814 github链接:https://github.com/wyewyewye/tinyEasyMuduo…...
STM32驱动OLED屏幕全解析:从原理到温度显示实战(上) | 零基础入门STM32第五十三步
主题内容教学目的/扩展视频OLED显示屏重点课程电路原理,手册分析,驱动程序。初始化,清屏,ASCII字库,显示分区。调用显示函数。做带有加入图形和汉字显示的RTC时钟界面。讲字库的设计原理。 师从洋桃电子,杜…...
2024年9月中国电子学会青少年软件编程(Python)等级考试试卷(三级)答案 + 解析
更多真题在线练习系统:历年真题在线练习系统 一、单选题 1、以下表达式的值为True的是?( ) A. all( ,1,2,3) B. any([]) C. bool(abc) D. divmod(6,0) 正确答案:C 答案解析:A和B选项,Fal…...
苍穹外卖实战附源码-DAY1
一、打开项目的Nginx 1.通过nginx成功打开包装后的前端网页 二、导入sky的数据库 sky.sql 数据 CREATE DATABASE IF NOT EXISTS sky_take_out ; USE sky_take_out;DROP TABLE IF EXISTS address_book; CREATE TABLE address_book (id bigint NOT NULL AUTO_INCREMENT COMMEN…...
Spring 框架学习
技术体系结构 总体技术体系 单一架构 一个项目,一个工程,导出为一个 war 包,在一个 Tomcat 上运行,也叫 all in one。 单一架构,项目主要应用技术框架为:Spring、SpringMVC 、Mybatis。 分布式架构 一个…...
股票交易所官方api接口有哪些?获取和使用需要满足什么条件
炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取…...
NAT NAPT
NAT NAT(Network Address Translation,网络地址转换) 主要用于在不同网络(如私有网络和公共互联网)之间进行 IP 地址转换,解决IP 地址短缺问题,并提供一定的安全性。 IPv4 地址是 32 位…...
调优案例一:堆空间扩容提升吞吐量实战记录
📝 调优案例一:堆空间扩容提升吞吐量实战记录 🔧 调优策略:堆空间扩容三部曲 # 原配置(30MB堆空间) export CATALINA_OPTS"$CATALINA_OPTS -Xms30m -Xmx30m"# 新配置(扩容至120MB&am…...
对比 Vue2 选项式 API 与 Vue3 setup 语法
对比 Vue2 选项式 API 与 Vue3 setup 语法 1. 代码组织方式 Vue2 选项式 API 通过独立的选项(data, methods, computed, watch, 生命周期钩子等)组织代码。 export default {data() {return { count: 0 };},methods: {increment() { this.count; }},mou…...
ragflow-组件可视化工具 es默认用户名elastic
以下是针对各个后台组件的可视化工具及配置指南,基于您提供的环境变量和端口设置: 1. Elasticsearch 可视化工具: Kibana(官方推荐)、Cerebro、ElasticHQ访问方式: Kibana(集成管理): URL: http://<主机…...