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

【运维测试】移动测试自动化知识总结第1篇:移动端测试介绍(md文档已分享)

本系列文章md笔记(已分享)主要讨论移动测试相关知识。主要知识点包括:移动测试分类及android环境搭建,adb常用命令,appium环境搭建及使用,pytest框架学习,PO模式,数据驱动,Allure报告,Jenkins持续集成。掌握操作app的基本api,掌握元素定位及获取元素信息的api,掌握事件操作api,掌握app模拟手势操作,掌握手机操作的api。掌握pytest函数执行顺序,掌握pytest函数参数化,掌握PO模式的作用,掌握yaml语法。能够使用allure和pytest生成测试报告。

全套笔记和代码自取移步gitee仓库: gitee仓库获取完整文档和代码

感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~


共 7 章,34 子模块

移动端测试介绍

学习主要内容

1移动测试分类及android环境搭建
2adb常用命令
3appium环境搭建及使用
4pytest框架学习
5PO模式
6数据驱动
7Allure报告
8Jenkins持续集成

学习目标

  1. 掌握移动端安卓模拟器的安装
  2. 掌握常见的adb指令
  3. 了解主流的移动端自动化测试工具
  4. 掌握appium环境搭建
  5. 了解appium入门案例

移动端测试知识概览

学习目标

  • 了解移动端测试分类

1. 什么事移动端测试

移动端测试是指对移动应用进行的测试, 即实体的特性满足需求的程度

2. 移动端测试分类

2.1 app功能测试
  • 业务逻辑正确性测试
1. 查看是否符合业务需求文档
2. 是否满足隐性需求
  • 兼容性测试
1. 系统版本是否兼容: 安卓原生系统上下版本间是否兼容,例如安卓10.0的是否兼容9.0二次开发的系统, 比如小米的MIUI系统间的兼容、华为的EMUI上下版本间兼容性是否良好ios 版本间的兼容是否良好
2. 分辨率是否兼容
3. 网络情况弱网测试、WIFI限速、更改网络app模式
  • 异常测试
1.热启动应用[1]app至于后台时是A页面,切换到前台,还是A页面,还是初始化页面[2]app长时间置于后台,切换到前台,还是A页面,还是初始化页面,崩溃/闪退2.网络切换和中断恢复[1]4g-2g wifi-4g,保证app可用,业务正常[2]wif-断网-wifi断点续传  下载应用5M 下载了3M断网,再次联网,继续当前位置下载3.电话和信息中断恢复[1]电话:看视频,打电话30分钟,切换为继续查看位置[2]短信:玩游戏  4.升级安装卸载测试[1]升级测试临近版本升级 1.0--->1.1--->1.2跨版本升级 1.0---->2.0[2]安装测试首次安装覆盖安装高版本--->低版本  成功低版本--->高版本  不允许   卸载后安装[3]卸载测试首次卸载卸载--->安装--->卸载 5.健壮性测试手机资源消耗流量消耗崩溃恢复等测试
2.2 app自动化测试
通过场景和数据的预设,把以人为驱动的测试行为转化为机器执行的一种过程.⚠ 注意: 并不是所有功能都能进行自动化.
2.3 app安全测试
通过安全测试技术,保证app尽可能的不存在安全漏洞.

更多移动测试参考:

  • 移动测试的分类

移动端测试环境搭建

移动端自动化测试的基础环境配置

    1. 安装Java环境
Android应用为例讲解,需要安装java环境
    1. SDK环境
Android依赖SDK的环境
    1. 模拟器环境
考虑大家连接真机不方便,所以采用模拟器替代

1. Wind 安装java环境

安装步骤:

1.1 安装jdk1.8
运行jdk-8u151-windows-x64.exe⽂件,默认安装即可(例如我的安装⽬录:C:\Program Files\Java\jdk1.8.0)
1.2 配置java环境变量(windows为例)
1.进入我的电脑-->属性-->高级系统设置--->环境变量2.在系统变量下点击新建 -> 变量名: JAVA_HOME -> 变量值: C:\Program Files\Java\jdk1.8.0
1.3 验证环境变量
1.打开dos 快捷键win+r
2.输入java -version

出现下图,说明安装成功

img

2. Mac 安装java环境

将下载的osx版的java环境默认进行安装,然后进行一下配置:

1.进入命令行, vim ~/.bash_profile 
2.# set jdk1.8JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/HomeCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarPATH=$PATH:$JAVA_HOME/binexport JAVA_HOME CLASSPATHexport PATH

启动终端,输入java -version查看是否正常启动

java安装

1. Window 安装sdk(Androi需要的环境)

安装步骤:

1.1 解压Android sdk 文件夹

注意:路径中不要有中文, 确保文件夹下有一下两个文件

如下图: img

1.2 配置到系统环境变量下.
SDK环境变量配置(Windowns7为例)1.进入我的电脑 -> 属性 -> 高级系统设置 -> 环境变量2.在系统变量下点击新建 -> 变量名: ANDROID_HOME -> 变量值: D:\android-sdk -> 点击确定按钮3.在系统变量下找到系统的path变量,最后添加:;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;(最前面是一个分号,如果path变量最后已有分号,可不用添加) -> 点击确定按钮
1.3 验证环境变量是否配置成功
  • 在dos中输入adb指令,如下图配置成功 img
  • 在dos中输入android指令 出现Android sdk manager对话框 img

注意:**

假如sdk中已经有build-tools和platform-tools文件夹,就不需要再进行下载安装了

2. Mac 安装android sdk

  1. 把下载的android sdk macosx版本的解压到指定目录(我的解压到//Library/Java/)

macsdk

注意:

假如sdk没有build-tools和platform-tools文件夹,要把提供的文件夹移动到此处, 后面只需要配置环境变量即可,不需要下载了

  1. 把sdk配置到系统环境变量
1.进入命令行, vim ~/.bash_profile
2.# set androidANDROID_HOME=电脑存放的路径/android-sdk-macosxPATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-toolsexport ANDROID_HOME export PATH
  1. 验证是否成功

验证adb命令: 在终端输入adb,出现adb版本信息说明成功

Mac adb

验证android是否配置成功: 在终端输入android, 出现此图片说明成功

Mac android

3、选择不同版本的的Android系统进行下载

注意:

由于安卓镜像在国外,最好更换国内的镜像

步骤

  • 在弹出的android sdk manager页面,点击tools, 下啦框点击options

还原

  • 在弹出的对话框输入国内惊现的地址和端口号.

set

镜像地址列表(也可以网上查找最新的):中国科学院开源协会镜像站地址:IPV4/IPV6: mirrors.opencas.cn 端口:80IPV4/IPV6: mirrors.opencas.org 端口:80IPV4/IPV6: mirrors.opencas.ac.cn 端口:80上海GDG镜像服务器地址:sdk.gdgshanghai.com 端口:8000北京化工大学镜像服务器地址:IPv4: ubuntu.buct.edu.cn/ 端口:80IPv4: ubuntu.buct.cn/ 端口:80IPv6: ubuntu.buct6.edu.cn/ 端口:80大连东软信息学院镜像服务器地址:mirrors.neusoft.edu.cn 端口:80

1. window安装andorid模拟器

1. 模拟器Genymotion安装

1.执行genymotion-2.11.0-vbox.exe(是一个集合程序,包含genymotion和virtualbox) -> 不需要更改配置,直接下一步默认安装2.安装完genymotion继续等待,会提示安装virtualbox,继续安装,期间会提示安装oracle插件,全部允许安装3.安装完成后会在桌面展示genymotion和virtualbox两个图标

img

注意:

安装其他的模拟器也可以 ,安装成功就可以.(比如MuMu 逍遥 夜神 雷电)

2. Mac 下安装模拟器

mac下安装要装两个dmg文件: genymotion-2.12.1.dmg和VirtualBox-5.2.26-128414-OSX.dmg

1.安装genymotion-2.12.1.dmg-》不用更改配置,默认安装就行
2.安装VirtualBox-5.2.26-128414-OSX.dmg  -》 不用更改配置直接安装就行
3.安装后也会看到上面三个应用

3.虚拟机镜像导入

1.打开virtualbox
2.进入virtualbox -> 管理 -> 导入虚拟电脑
3.点击文件选择(Samsung Galaxy S6 - 5.1.0 - API 22 - 1440x2560.ova) -> 点击下一步
4.勾选 重新初始化所有网卡的MAC地址
5.点击导入按钮 -> 等待倒入完成
6.virtualbox列表会展示如下图圈出的选项

虚拟镜像

4. 启动模拟器

在genymotion主界面点机start按钮.启动成功就会显示下图

启动成功

5. 安装应用apk

安卓模拟器启动起来后,我们就可以安装要进行测试的应用了.安装成功后,我们的环境搭建就全部结束.

安装方法:

  • adb命令行(后面讲解)
  • 直接拖拽要安装的apk到模拟器上,自动安装

注意事项

1. 安装ARM插件

安装某些应用apk时由于apk功能比较丰富,但是模拟器自带的不支持这些功能,所以要安装arm插件,来满足apk的使用.

(1)、拖动ARM_Translation_Lollipop_20160402.zip到已启动的android虚拟机上

需要下载对应版本的插件、我们使用的是adnroid5.1 所以使用的是这个

(2)点击提示的ok按钮

arm插件1

(3)、再次点击提示的ok按钮,重启模拟器既可以安装apk文件

arm插件1

2. 使用其他版本的模拟器的步骤

(1)、需要到genymotion官网上注册一个账号

(2)、进入genymotion界面,点击add按钮、会弹出登录对话框、输入注册的账号

登录genymotion

(3)、登录成功后可以选择对应不同的android版本、手机型号进行安装

下载模拟器

下载模拟器成功

选择要使用版本启动

ADB常用命令

学习目标

  • 掌握常用的ADB命令

1. ADB命令简介

ADB全名Andorid Debug Bridge。 是一个Debug工具。为何称之为Bridge呢? 
因为adb是一个标准的C/S结构的工具, 是要连接开发电脑和调试手机的包含如下几个部分:1.Client端,运行在开发机器中,即你的开发PC机。用来发送adb命令。2.Daemon守护进程, 运行在调试设备中, 即的调试手机或模拟器。3.Server端, 作为一个后台进程运行在开发机器中, 即你的开发PC机. 用来管理PC中的Client端和手机的Daemon之间的通信。

2. 常用命令

  • adb 帮助
adb --help
  • 启动adb 服务
adb start-server
  • 关闭adb 服务
adb kill-server
  • 获取设备号
adb devices
  • 获取系统版本
adb shell getprop ro.build.version.release
  • 发送文件到手机
adb push 电脑端⽂件路径/需要发送的文件,手机端存储的路径adb push C:\Users\win\Desktop\xx.png /sdcard
  • 从手机拉取文件
adb pull 手机端的路径/拉取文件名 电脑端存储文件路径adb pull /sdcard/xx.png C:\Users\win\Desktop
  • 查看手机运行日志
adb logcat
  • 进入到手机终端
adb shell
  • 获取app启动包名和启动名(⚠手机需要先打开对应app)
1.Mac/Linux: 'adb shell dumpsys window windows | grep mFocusedApp’
2.在 Windows 终端运⾏ 'adb shell dumpsys window windows | findstr mFocusedApp’
  • 安装app到手机
adb install 路径/xxx.apk
  • 卸载手机app
adb uninstall app
  • 获取app启动时间
adb shell am start -W 包名/.启动名

`python
adb shell getprop ro.build.version.release

* 发送文件到手机```python
adb push 电脑端⽂件路径/需要发送的文件,手机端存储的路径adb push C:\Users\win\Desktop\xx.png /sdcard
  • 从手机拉取文件
adb pull 手机端的路径/拉取文件名 电脑端存储文件路径adb pull /sdcard/xx.png C:\Users\win\Desktop
  • 查看手机运行日志
adb logcat
  • 进入到手机终端
adb shell
  • 获取app启动包名和启动名(⚠手机需要先打开对应app)
1.Mac/Linux: 'adb shell dumpsys window windows | grep mFocusedApp’
2.在 Windows 终端运⾏ 'adb shell dumpsys window windows | findstr mFocusedApp’
  • 安装app到手机
adb install 路径/xxx.apk
  • 卸载手机app
adb uninstall app
  • 获取app启动时间
adb shell am start -W 包名/.启动名

相关文章:

【运维测试】移动测试自动化知识总结第1篇:移动端测试介绍(md文档已分享)

本系列文章md笔记(已分享)主要讨论移动测试相关知识。主要知识点包括:移动测试分类及android环境搭建,adb常用命令,appium环境搭建及使用,pytest框架学习,PO模式,数据驱动&#xff0…...

高校疫情防控系统的全栈开发实战

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…...

OpenTitan- 开源安全芯片横空出世

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

简单的edge浏览器插件开发记录

今天在浏览某些网页的时候,我想要屏蔽掉某些信息或者修改网页中的文本的颜色、背景等等。于是在浏览器的控制台中直接输入JavaScript操作dom完成了我想要的功能。但是每次在网页之间跳转该功能都会消失,我需要反复复制粘贴js脚本,无法实现自动…...

WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)

环境: 硬: 台式电脑 1.cpu:I5 11代以上 2.内存16G以上 3.硬盘固态500G以上 4.显卡N卡8G显存以上 20系2070以上 本案例英伟达4070 12G 5.网络可连github 软: Win10 专业版 19045以上 WSL2 -Ubuntu22.04 1.bert-Vits2.3 Extra-v2:…...

Go语言的100个错误使用场景(40-47)|字符串函数方法

前言 大家好,这里是白泽。 《Go语言的100个错误以及如何避免》 是最近朋友推荐我阅读的书籍,我初步浏览之后,大为惊喜。就像这书中第一章的标题说到的:“Go: Simple to learn but hard to master”,整本书通过分析100…...

Fluke ADPT 连接器新增对福禄克万用 Fluke 15B Max 的支持

所需设备: 1、Fluke ADPT连接器; 2、Fluke 15B Max; Fluke 15B Max拆机图: 显示界面如下图: 并且可以将波形导出到EXCEL: 福禄克万用表需要自己动手改造!!!...

前端工程化面试题 | 10.精选前端工程化高频面试题

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

【并发编程】AQS原理

📝个人主页:五敷有你 🔥系列专栏:并发编程 ⛺️稳中求进,晒太阳 1. 概述 全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架 特点: 用 state 属性来表示资源的状…...

AI:130-基于深度学习的室内导航与定位

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…...

Leetcode1423.可获得的最大点数

文章目录 题目原题链接思路(逆向思维) 题目 原题链接 Leetcode1423.可获得的最大点数 思路(逆向思维) 由题目可知,从两侧选k张,总数为n张,即从中间选n - k张 nums总和固定,要选k张最…...

深度学习之梯度下降算法

梯度下降算法 梯度下降算法数学公式结果 梯度下降算法存在的问题随机梯度下降算法 梯度下降算法 数学公式 这里案例是用梯度下降算法,来计算 y w * x 先计算出梯度,再进行梯度的更新 import numpy as np import matplotlib.pyplot as pltx_data [1.0,…...

代码随想录第32天|● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II

文章目录 买卖股票思路一:贪心代码: 思路:动态规划代码: 跳跃游戏思路:贪心找最大范围代码: 跳跃游戏②思路:代码: 方法二:处理方法一的特殊情况 买卖股票 思路一&#x…...

线性代数的本质 2 线性组合、张成的空间、基

基于3Blue1Brown视频的笔记 一种新的看待方式 对于一个向量,比如说,如何看待其中的3和-2? 一开始,我们往往将其看作长度(从向量的首走到尾部,分别在x和y上走的长度)。 在有了数乘后&#xff0…...

- 工程实践 - 《QPS百万级的有状态服务实践》01 - 存储选型实践

本文属于专栏《构建工业级QPS百万级服务》 《QPS百万级的无状态服务实践》已经完成。截止目前为止,支持需求“给系统传入两个日期,计算间隔有多少天”的QPS百万级服务架构已经完成。如图1: 图1 可是这个架构不能满足需求“给系统传入两个日期…...

SECS/GEM的HSMS通讯?金南瓜方案

High Speed SECS Message Service (HSMS) 是一种基于 TCP/IP 的协议,它使得 SECS 消息通信更加快速。这通常用作设备间通信的接口。 HSMS 状态逻辑变化(序列): 1.Not Connected:准备初始化 TCP/IP 连接,但尚…...

wayland(xdg_wm_base) + egl + opengles——dma_buf 作为纹理数据源(五)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、EGL dma_buf import 相关的数据结构和函数1. EGLImageKHR2. eglCreateImageKHR()3. glEGLImageTargetTexture2DOES()二、egl 中 import dma_buf 作为纹理的代码实例1. egl_wayland_dmabuf_…...

【VTKExamples::PolyData】第二十八期 LinearExtrusion

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享VTK样例LinearExtrusion,并解析接口vtkLinearExtrusionFilter,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 目录…...

Linux操作系统基础(五):Linux的目录结构

文章目录 Linux的目录结构 一、Linux目录与Windows目录区别 二、常见目录介绍(记住重点) Linux的目录结构 一、Linux目录与Windows目录区别 Linux的目录结构是一个树型结构 Windows 系统 可以拥有多个盘符, 如 C盘、D盘、E盘 Linux 没有盘符 这个概…...

SolidWorks如何在一个零件的基础上绘制另一个零件

经过测试,新建零件,然后插入零件a,在a的基础上绘制b,这种做法无法断开a与b的联系。虽然可以通过切除命令,切除b,但不是正途。 在装配体中可以实现: (1)建立装配体 (2&…...

gin(结)

gin day1 今天的目标就是学懂,看懂每一步代码。 gin框架 gin框架就是go语言的web框架。框架你也可以理解成一个库。里面有一堆封装好的工具,帮你实现各种各样的功能,这样使得你可以关注业务本身,而在写代码上少费力。 快速入门&…...

JavaScript 设计模式之桥接模式

桥接模式 通过桥接模式,我们可以将业务逻辑与元素的事件解耦,也可以更灵活的创建一些对象 倘若我们有如下代码 const dom document.getElementById(#test)// 鼠标移入移出事件 // 鼠标移入时改变背景色和字体颜色 dom.onmouseenter function() { th…...

B3651 [语言月赛202208] 数组调整

题目描述 给出一个长度为 n 的数组,第 i 个数为ai​。 为了调整这个数组,需要将第 k 个数改变为 −ak​。 请你求出调整后的数组中所有数的和。 输入格式 输入共两行。 输入的第一行为两个整数 n,k。 输入的第二行为 n 个整数,第 i 个…...

MessageQueue --- RabbitMQ

MessageQueue --- RabbitMQ RabbitMQ IntroRabbitMQ 核心概念RabbitMQ 分发类型Dead letter (死信)保证消息的可靠传递 RabbitMQ Intro 2007年发布,是一个在AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,…...

WordPress作者页面链接的用户名自动变成16位字符串串插件Smart User Slug Hider

WordPress默认的作者页面URL链接地址格式为“你的域名/author/admin”,其中admin就是你的用户名,这样的话就会暴露我们的用户名。 为了解决这个问题,前面boke112百科跟大家分享了『如何将WordPress作者存档链接中的用户名改为昵称或ID』一文…...

Nvidia 携手 RTX 推出的本地运行 AI 聊天机器人

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

年假作业day2

1.打印字母图形 #include<stdio.h> #include<string.h> int main(int argc, const char *argv[]) { int i,j; char k; for(i1;i<7;i) { for(j1;j<i;j) { printf("%c",_); } for(j0,…...

HTML-多媒体嵌入-MDN文档学习笔记

HTML-多媒体与嵌入 查看更多学习笔记&#xff1a;GitHub&#xff1a;LoveEmiliaForever MDN中文官网 HTML-中的图片 将图片放入网页 可以使用<img/>来将图片嵌入网页&#xff0c;它是一个空元素&#xff0c;最少只需src属性即可工作 <img src"图片链接"…...

openJudge | 距离排序 C语言

总时间限制: 1000ms 内存限制: 65536kB 描述 给出三维空间中的n个点&#xff08;不超过10个&#xff09;,求出n个点两两之间的距离,并按距离由大到小依次输出两个点的坐标及它们之间的距离。 输入 输入包括两行&#xff0c;第一行包含一个整数n表示点的个数&#xff0c;第二…...

【教程】MySQL数据库学习笔记(三)——数据定义语言DDL(持续更新)

写在前面&#xff1a; 如果文章对你有帮助&#xff0c;记得点赞关注加收藏一波&#xff0c;利于以后需要的时候复习&#xff0c;多谢支持&#xff01; 【MySQL数据库学习】系列文章 第一章 《认识与环境搭建》 第二章 《数据类型》 第三章 《数据定义语言DDL》 文章目录 【MyS…...

[leetcode]买卖股票的最佳时机 (动态规划)

121. 买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从…...

隐函数的求导【高数笔记】

1. 什么是隐函数&#xff1f; 2. 隐函数的做题步骤&#xff1f; 3. 隐函数中的复合函数求解法&#xff0c;与求导中复合函数求解法有什么不同&#xff1f; 4. 隐函数求导的过程中需要注意什么&#xff1f;...

SG3225EEN晶体振荡器规格书

SG3225EEN 晶振是EPSON/爱普生的一款额定频率25 MHz至500 MHz的石英晶体振荡器&#xff0c;6脚贴片&#xff0c;LV-PECL输出&#xff0c;3225封装常规有源晶振&#xff0c;具有小尺寸&#xff0c;轻薄型&#xff0c;高稳定性&#xff0c;低相位抖动&#xff0c;低电源电压&…...

ESP8266 常用AT指令

一、ESP8266的AT指令要点、常见错误 AT指令要大写;以"\r\n"作结尾;串口通信&#xff0c;115200-None-8-1;支持2.4G频段&#xff0c;不支持5G频段 &#xff08;如果用手机创建热点&#xff0c;注意选择2.4G&#xff09;不支持中文的wifi名称工作模式&#xff0c;上电…...

esbuild 构建工具为什么很快?

esbuild 构建工具之所以很快&#xff0c;主要有以下几个原因&#xff1a; Go语言编写&#xff1a;esbuild 是用 Go 语言编写的&#xff0c;Go 语言以其高效的并发模型和编译速度而闻名。与一些其他构建工具相比&#xff0c;Go 语言在并发处理和内存管理方面表现出色&#xff0c…...

解决vscode报错,在赋值前使用了变量“XXX“

问题&#xff1a;如图所示 解决方法&#xff1a; 法一&#xff1a; 补全函数使其完整 法二&#xff1a; 使用断言...

python自动定时任务schedule库的使用方法

当你需要在 Python 中定期执行任务时&#xff0c;schedule 库是一个非常实用的工具。它可以帮助你自动化定时任务。以下是一些使用示例&#xff1a; 基本使用&#xff1a; import schedule import timedef job():print("Im working...")schedule.every(10).minutes.d…...

用机器学习方法重构期货商品板块

用机器学习方法重构期货商品板块 阿岛格 参考专栏:低门槛搭建个人量化平台 https://www.zhihu.com/column/c_1441014235068944386 摘 要 金融市场商品期货的板块分类,通常根据不同交易所、监管机构和证券商标准,按照期货标的属性、或产业链关系等进行分类,各自分类略有差…...

51单片机项目(29)——基于51单片机的避障跟随小车

1.功能设计 按键模式&#xff1a;按下按键&#xff0c;小车可以前后左右地运动 自动模式&#xff1a;根据红外传感器的状态&#xff0c;自行决定运动状态。检测到前方有物体时&#xff0c;车子移动&#xff0c;起到一个跟随的效果。 演示视频如下&#xff1a; 51单片机智能避障…...

人工智能学习与实训笔记(六):百度飞桨套件使用方法

目录 八、百度飞桨套件使用 8.1 飞桨预训练模型套件PaddleHub 8.1.1 一些本机CPU可运行的飞桨预训练简单模型&#xff08;亲测可用&#xff09; 8.1.1.1 人脸检测模型 8.1.1.2 中文分词模型 8.1.2 预训练模型Fine-tune 8.2 飞桨开发套件 8.2.1 PaddleSeg - 图像分割 8…...

Linux第一个小程序-进度条

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、回车和换行 二、行缓冲区概念 三、倒计时 四、进度条代码 版本一&#xff1a; ​编辑 版本二&#xff1a; 总结 前言 世上有两种耀眼的光芒&#xff0c;一…...

YoloV8改进策略:Block改进|Mamba-UNet改进YoloV8,打造全新的Yolo-Mamba网络

摘要 本文尝试使用Mamba的VSSBlock替换YoloV8的Bottleneck,打造最新的Yolo-Mamba网络。 论文:《Mamba-UNet:用于医学图像分割的类似UNet的纯视觉Mamba网络》 在医学图像分析的最新进展中,卷积神经网络(CNN)和视觉转换器(ViT)都取得了显著的基准成绩。前者通过其卷积…...

数据分析基础之《pandas(8)—综合案例》

一、需求 1、现在我们有一组从2006年到2016年1000部最流行的电影数据 数据来源&#xff1a;https://www.kaggle.com/damianpanek/sunday-eda/data 2、问题1 想知道这些电影数据中评分的平均分&#xff0c;导演的人数等信息&#xff0c;我们应该怎么获取&#xff1f; 3、问题…...

(17)Hive ——MR任务的map与reduce个数由什么决定?

一、MapTask的数量由什么决定&#xff1f; MapTask的数量由以下参数决定 文件个数文件大小blocksize 一般而言&#xff0c;对于每一个输入的文件会有一个map split&#xff0c;每一个分片会开启一个map任务&#xff0c;很容易导致小文件问题&#xff08;如果不进行小文件合并&…...

define和typedef

目录 一、define 二、typedef 三、二者之间的区别 一、define 在我们写代码的日常中&#xff0c;经常会用到define去配合数组的定义使用 #define N 10 arr[N]{0}; define不仅仅能做这些 #define是一种宏&#xff0c;我们首先来了解一下宏定义。 宏定义一般作用在C语言的预…...

SpringCloud之Nacos用法笔记

SpringCloud之Nacos注册中心 Nacos注册中心nacos启动服务注册到Nacosnacos服务分级模型NacosRule负载均衡策略根据集群负载均衡加权负载均衡Nacos环境隔离-namespace Nacos与eureka的对比临时实例与非临时实例设置 Nacos配置管理统一配置管理微服务配置拉取配置自动刷新远端配置…...

【c++】拷贝构造函数

1.特征 1.拷贝构造函数是构造函数的一个重载形式。 2.若显示定义了拷贝构造函数&#xff0c;编译器就不会自动生成构造函数了。 3.拷贝构造函数的参数只有一个且必须是类型对象的引用&#xff0c;使用传值方式编译器直接报错&#xff0c;因为会引发无穷递归调用。 4.若未显…...

17.3.1.2 曝光

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 基本算法&#xff1a;先定义一个阈值&#xff0c;通常取得是128 原图像&#xff1a;颜色值color&#xff08;R&#xff0c;G&#…...

【Win10 触摸板】在插入鼠标时禁用触摸板,并在没有鼠标时自动启用触摸板。取消勾选连接鼠标时让触摸板保持打开状态,但拔掉鼠标后触摸板依旧不能使用

出现这种问题我的第一反应就是触摸板坏了&#xff0c;但是无意间我换了一个账户发现触摸板可以用&#xff0c;因此推断触摸板没有坏&#xff0c;是之前的账户问题&#xff0c;跟系统也没有关系&#xff0c;不需要重装系统。 解决办法&#xff1a;与鼠标虚拟设备有关 然后又从知…...

排序算法---桶排序

原创不易&#xff0c;转载请注明出处。欢迎点赞收藏~ 桶排序&#xff08;Bucket Sort&#xff09;是一种排序算法&#xff0c;它将待排序的数据分到几个有序的桶中&#xff0c;每个桶再分别进行排序&#xff0c;最后将各个桶中的数据按照顺序依次取出&#xff0c;即可得到有序序…...