接口测试学习笔记1

news2024/9/22 10:05:19


一、行业背景和测试分层
1、招聘需求
1)手工测试:业务需求、业务逻辑
2)自动化测试:业务逻辑 + 技术规范
  功能自动化  QTP、Selenium
  性能自动化  LoadRunner、JMeter
  接口自动化  Postman、Fiddler、JMeter、SoapUI...  
  手机自动化  adb monkey monkeyrunner Appium ...

2、分层的手工测试:黑盒测试、白盒测试、灰盒测试
1)黑盒测试:一般也称为功能测试,把测试的程序看作是一个黑盒子,在程序界面输入数据,进行操作,检查程序是否按照需求规格说明书的规定正常实现。
说明:投入产出比较低,就是编写用例发现的缺陷不是很多;
2)白盒测试:又称为结构测试,在单元测试阶段完成,对代码要求较高;
  通过检查代码来发现程序的错误,需要测试人员掌握被测系统所用的编程语言,熟悉程序结构和处理过程,所以一般由程序员自己来做,在单元测试阶段应用较多。
说明:目前需求量较小,常用于航空航天、医疗、银行等行业;
     比如神州6号飞船控制系统代码120万行,测试代码写了150万行;
     Win7操作系统5000万行,Linux系统2000万行;
     白盒测试精确度非常高,发现bug的修复成本非常低;
     让测试人员进行白盒测试,难以推广,要求很高。
3)灰盒测试:结合了白盒测试和黑盒测试的要素,是介于白盒测试与黑盒测试之间的测试。灰盒测试像黑盒测试那样,检查输出结果对于输入的数据是否正确;同时也像白盒测试那样,检查程序的代码,但这种检查不像白盒测试那样详细、完整,一般只对程序模块之间的调用、核心代码进行检查,在集成测试时经常采用,一般也是程序员大量采用。
说明:在集成测试时采用,取一个折中的办法。

3、测试金字塔模型
基本观点:应该有更多低级别的单元测试,而不仅仅是通过用户界面运行高层端到端的测试。
整个测试分为三层:    UI   Service  Unit
1)UI层(User Interface 用户界面)
 在用户界面上进行操作完成测试--黑盒测试(功能测试)
2)Server层:服务层测试
 主要在集成测试阶段,测试模块间的调用关系
(一个模块给另一个模块提供调用,就说提供服务)
 -- 主要测试代码之间的调用关系,也是接口测试的核心
3)Unit层:单元层,主要在单元测试阶段,使用白盒和黑盒的方法,测试某个模块的功能是否正确。

金字塔测试模型认为:UI层的测试效率低,发现Bug的能力弱,投入与产出比低(事倍功半),应该逐步减少采用;而更多采用Server层和Unit层的测试(更多的代码级测试)
基本理念:
    1.越底层,越稳定
    2.越底层,越高效
    3.越底层,越低成本
    4.越底层,越难实施

4、分层的自动化测试
基本观点:每一层都应该开展自动化测试
1)UI层:QTP、Selenium   功能自动化测试工具
  主要应用在回归测试、大数据量测试,代替测试员的重复手工测试;
  缺点:投入产出比低,发现Bug能力较弱
2)Unit层:
 Java测试:JUnit、JTest
 Python测试:Unittest     自带的白盒测试工具
 C/C++测试:C/C++ Test
 使用工具测试代码的正确性和语法正确性、规范性
 缺点:难度太大,找不到合适的人员,人力成本高;
3)Service层:接口自动化测试
 测试模块间的集成示范正确:
 接口测试就是测试模块间的调用关系的正确性。
 目前主要指Web接口测试,主要测试网页和后台服务器之间的数据传递的正确性。

二、接口的概念
1、日常生活中的接口
 通过接口连接,将传输的内容将一处传送到另一处。
2、程序的接口 API
 Application Programming Interface  应用编程接口
 接口本质上是程序开发的函数或方法,提供参数和返回值

3、函数:也称为方法   function、method
                           函数      方法
1)程序由大量的函数调用组成,有些编程语言把函数称作方法;
  目的:提高软件可复用性、易维护性
2)函数就是实现某个功能的代码,写在一个整体中,然后让自己或别人调用;call、invoke 
3)函数编写和调用示例:
函数的定义三要素:(C/Java语法)
                功能名 加入的数据
  返回值类型  函数名(参数表, ...)
            形参
   int  add(int a, int b) {
      return a + b;
   }
              实参
调用时:add(1, 2);   结果为3
          add(3, 5);   结果为8

函数定义:
A. 实现两个数相加
          1  2  实参
def add(x, y): 形参    变量就是代词,指代所用的值
  z=x+y
  return z
说明:定义一个加法函数,函数名称叫add,使用x、y接收两个参数,进行加法计算,最后将计算结果返回给调用者;
B. 实现减法函数
def sub(m, n):
  t=m-n
  return t
说明:定义一个减法函数,函数名称叫sub,使用m、n接收两个参数,进行减法计算,最后返回减法计算结果;
把函数理解成一个加工机器,接受一定的参数(被加工的数据),进行处理,处理完以后,把结果返回给调用者;

函数调用: 
  a=10
  b=20
  sum=add(a,b)     
调用加法函数add,同时传递a=10给x,b=20给y
  res=sub(2000,1000)
调用减法函数,传递参数2000给m,1000给n
说明:通过函数名称进行函数调用,本质就是要跳转到函数定义的位置去执行,并且把所需参数传递过去,达到重复使用代码,简化开发的目的。
函数核心要点:
  函数名称、需要的参数、返回结果、函数实现的功能
  函数必须先定义再调用
  一个函数定义一次可以被多次调用(重复利用)

类比:接口理解为大量可以重用的服务、功能
 接口测试主要是通过某种途径访问接口功能,通过参数传入需要的数据、条件,之后判断结果是否符合预期、需求。
 接口需要开发方设计、实现,由测试方进行测试。

三、Web接口测试
1、Web接口测试概念
Web接口测试就是测试前端和后端之间的Web接口的正确性。
现在企业说的接口测试,一般指的是Web接口测试或Http接口测试,主要指的是基于B/S架构的接口测试(B/S架构主要基于HTTP 超文本传输协议,所以也叫HTTP接口测试)
1)B/S架构使用的协议:
 HTTP  超文本传输协议
 HTTPS 安全版的HTTP协议
2)在客户端(Browser浏览器)和服务器端(Server)之间传输的数据主要包括:HTML(静态网页)、视频、音频、图片、CSS(样式表)、JavaScript等;
接口测试返回的结果大多是JSON格式文本。

2、接口测试产生的背景:
   (Web前端技术:HTML5、CSS3、JavaScript)
  Web页面做得越来越复杂,交互数据越来越多,在前端页面和后台服务器之间有大量数据传递(函数调用),为了降低前端工程师和后台程序员的难度,前端和后端采用“接口”来传递数据。接口测试主要考察传递的数据是否正确。

Web规范:构建基于B/S架构程序的一套行业规范
1)Web前端技术:HTML5、CSS3、JavaScript
                    网页代码 层叠样式表  动态页面处理
 -- 越来越炫酷、丰富、用户体验好   前端开发工程师
     富客户端 Rich Client
2)Web后端:Web服务器、应用服务器、数据库服务器、缓存服务器... 
技术:以Java为例
   JavaSE 标准版、JavaEE 企业级开发版本
   JDBC:对数据库访问的规范
   Servlet、JSP等Web规范
   大数据、缓存...
 -- 越来越稳定、高效、大数据、集群、分布式..
3)Web接口将前后端连接:表达客户端的请求,也能表达服务器的反馈,使用特殊文本,比如JSON、XML进行信息传递;目前主流的接口--Web接口

3、Web开发的经典模型:MVC架构模型   各司其职、各尽所能  分层为了分工
1)Model: 模型层        业务逻辑
  满足业务功能主要程序,对后台数据库进行访问
2)View: 视图层          显示逻辑
  满足用户不同的显示效果,提供更加丰富的界面
3)Controller: 控制器层  控制逻辑
  在V和M之间进行调度,指派某个M完成业务逻辑,将结果交给某个V显示界面效果;

逻辑:要符合某种前提,根据前提完成后续流程,称为是一种逻辑;

4、为什么采用Web接口?
1)项目分工:
  产品经理、需求分析师
  开发人员:系统架构师、Web前端工程师、程序员
  测试人员
目的:各司其职,各尽所能,应用广泛
<1> 前端专业性越来越高,重点关注显示逻辑;
<2> 后端由程序员完成,重点关注业务和数据逻辑;
<3> Web接口应用广泛,既可满足Web页面调用,也可满足移动App调用,即可提供公司内系统调用(内部接口),也可提供给公司外系统调用(外部接口)。

2)为什么开发人员使用Web接口?
   程序是分层设计的,各层之间有数据传递
   表示层 <-> 业务逻辑层 <-> 数据访问层 <-> 数据库
   View    Controller  Model                       DB

几乎所有管理系统的共性:
对xxx信息的CURD操作:增删查改   
           Create Update Read Delete

5、为什么做Web接口测试?
Web接口测试就是测试前端和后端之间的Web接口的正确性。
1)可以更早的介入测试;
2)更好的验证系统的安全性和性能;
3)发现底层的问题。

接口:简称为API,是对大量可复用功能的统称;
      如何访问到某接口,对API的访问;
  Python API:  int()   str()  print() 函数
  Mysql函数:sum()  avg()  max() min()  count()
  C函数: strcmp("abc", "abc")  字符串比较
  Java方法:System.out.println();  打印...
  共同点:都有函数名(功能名)、参数表(加入计算的数据)、返回结果;
  Web接口:也有地址URL、参数,响应结果一般JSON格式;
              (满足Web协议-HTTP)

   A国  -----   B国
  秘书  -----   秘书
  机要  -----   机要
  电信  -----   电信
  设备  -----   设备

四、网络协议
网络协议:网络通信的规则、规范、约定
协议要分层:不同层面负责不同功能,具有不同规则
               上下层有联系,同层关系是对等
1、OSI7层模型:理论模型   参考模型
   从上到下:
    应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
   记忆方式:从下到上   物数网传会表应

2、TCP/IP 4层模型:现实中的网络模型  更实用
                    TCP/IP协议簇  cu4  簇拥 花团锦簇
                    将同类协议聚在一起管理
 从上到下    作用
1)应用层   满足用户不同功能需求     应用程序、用户直接面对!
<1> HTTP 超文本传输协议     看网页、访问Web接口
<2> HTTPS 安全的HTTP       确保安全交易,内部多验证  基于SSL
<3> FTP  文件传输协议        文件上传、下载 传输文件
<4> SMTP 简单邮件传输协议  邮件收发
<5> POP3  邮局协议第3版本   和邮件有关
<6> SSH   安全的shell         远程控制Linux系统
<7> Telnet 远程登录           远程登录服务器
<8> DNS   域名解析服务      将域名->IP地址
<9> TFTP  简单文件传输协议  比FTP效率高,但不可靠

2)传输层   传输是否可靠   TCP和UDP
面试题:TCP和UDP有何区别?
<1> TCP  传输控制协议    可靠的、面向有连接,效率较低
原理:建立连接时3次握手,传输时进行2次握手,断开连接时4次握手
       “握手”就是信号的确认
       --相见时难别亦难
用途:大量应用层协议的传输层一般都是TCP,可靠
        HTTP、FTP、SMTP...

三次握手细节:
 通过三次握手保证数据传输时网络的连通性,在发送每个数据包之前,都会进行三次握手(确认):
 第一次由客户端向服务器发送SYN请求;
 第二次由服务器向客户机发送ACK应答信号;
 第三次由客户机向服务器发送ACK应答信号;
 三次握手完成后,再传递真正的数据包,到达率更高。

<2> UDP  用户数据报协议 不可靠的、面向无连接,效率较高
原理:只管发,不管确认
用途:对效率要求高,对可靠性要求较低的应用
       比如:视频会议
       比如:应用层TFTP 简单文件传输协议 传输层用UDP

3)网络层   寻找对方主机   IP
<1> IP协议:网际协议   IP地址、MAC地址、子网掩码
               ipconfig /all 查看到   IPv4  IPv6 
<2> ARP:地址解析协议        将网卡地址MAC -> 报文
<3> RARP:反向地址解析协议  报文 -> 网卡地址
<4> ICMP:Internet控制消息协议   网络连接检查有关
             比如ping命令 判断网络是否可以连通

具体细节和关系:
 a. 计算机要想上网,必须具备一个唯一的IP地址;
 b. 目前采用IPv4版,使用32位二进制表示的一个地址,实际中,采用4个十进制数表示,
   比如:192.168.0.100      4个字节,共32位表示地址
   1个字节的数据范围? 1Byte=8bit
   二进制:00000000 ~ 11111111
   十进制:0 ~ 255  

IP地址1: 172.166.0.122    主机名
IP地址2: 172.166.0.123
子网掩码:255.255.255.0   判断两个IP是否在同一子网中
        两个IP分别和子网掩码进行按位与操作,如果结果一致,说明在同一网段中;172.166.0.0 结果一致
 c. IP地址可以分为静态IP和动态IP,静态IP就是人为设置一个固定的IP;
    动态IP是由服务器动态分配的。
 d. 使用ipconfig命令查看IP地址,会使用“网络和共享中心”配置IP;
 e. IP地址不易记忆使用,所以一般采用域名来代替IP;
   但是需要DNS(Domain Name System 域名解析系统)解析解析:
    由域名找到对应的IP地址主机
     www.baidu.com  ---  61.135.169.125  公网IP
     www.360buy.com  www.jd.com
     www.xiaomi.com   www.mi.com
     www.tarena.com.cn  www.tedu.cn
   说明:万网  注册域名  全球域名解析服务器有十几台
 f. IPv4的限制:数量有限,不够使用  2的32次方种
    目前公司、企事业单位都采用代理方式上网,也就是一台机器具有唯一IP,其他机器采用代理地址(172.168.xxx.xxx  192.168.xxx.xxx 作为局域网中出现),未来升级成IPv6版,128位二进制数表示;  2的128次方种IP地址
   物联网  
 g. 除了IP地址之外,还必须有物理硬件地址(网卡地址、MAC地址),IP + MAC地址才能唯一找到网络中的一台计算机;
  使用命令:ipconfig /all   查看MAC地址
             ipconfig -all
 h. IP协议负责封装/解封装目标机器的IP地址,ARP/RARP协议负责封装/解封装MAC地址;
 i. ICMP:控制网络层的一些数据传递,主要用于网络的检查,比如检查与目标机器是否连通;
   比如:ping 目标机器IP或域名
          ping 172.166.0.20   请求超时
          ping www.baidu.com
 j. 小结:通过网络层,可以找到目标机器的IP地址和MAC网卡地址,确定数据的目标地;
  
以上协议和访问接口的关系: 
                                    
URL地址格式:      DNS
    含有主机名   域名、IP地址
http://主机名:端口号/应用名/资源路径
应用层 网络层 应用层
传输层 
  TCP

4)物理层   将信息变为各种信号发送和接收 物理设备
               底层比特流、二进制的处理
                    bit
<1> PPP 点对点协议
 将各种光、电...信号 <-> 计算机二进制信号
 过于底层,不作为应用分析的细节

综上所述:主要关注应用层协议(HTTP为主 功能),附带了解传输层(TCP为主 可靠);  涉及主机寻址,需要关注 网络层 IP(寻址)
   Postman主要模拟:HTTP、HTTPS、FTP
   JMeter能够模拟更多协议:HTTP、JDBC、shell... 甚至通过二次开发可扩展 
   LR也支持大量协议  可以测试大多接口的性能

3、端口
1)端口作用:主要解决一台计算机中提供两个及以上同类型服务冲突问题,用来区别应用层的协议;
                              Tomcat
比如:一台服务器中提供两个Web网站,就需要把两个网站指定不同的端口号进行区别,以便客户端通过IP地址 + 端口号进行访问。
比如:
 http://172.166.0.10:8080
 http://172.166.0.10:8081
作用:通过IP地址寻址一台主机,通过占用的端口号找到不同服务;
2)常见默认端口号:(面试题)
当服务使用默认端口号时,访问时可以省略,比如http://...
 HTTP    80    大多基于TCP     :80可以省略
 HTTPS  443                      :443也可以省略
 FTP      21
 SSH     22
 Telnet   23
 SMTP   25
 DNS     53
 TFTP    69    基于UDP
 POP3    110

常用服务默认端口:
 Oracle     1521
 Mysql      3306     my.ini配置文件可修改
 Sqlserver  1433
 Tomcat     8080    conf/server.xml可修改 

3)安装完一个服务,如果不能正常启动,一种可能就是该电脑中有同类型服务已经启动,并占有了端口号,可以使用命令查看端口号占有情况:可以停止已经启动的服务进程,或者修改不同的端口号
  netstat -ano    
  netstat -ano |more 
   分屏显示,回车继续、空格翻页、q退出
定位技巧:
  通过 端口号 --> pid 进程号
        3306          1233 随机
  再通过任务管理器 pid --> 进程名  
                      1233     mysqld.exe
   可进一步管理,比如关闭进程、服务

右击“计算机” -> 管理 -> 服务和应用程序 -> 服务

五、HTTP协议
1、属于应用层协议,默认端口80,负责浏览器/服务器之间传递数据;
2、采用“请求响应”方式工作;  B/S架构
 HTTP Request:   B -> S  客户端向Web服务器发请求
 HTTP Response:  B <- S  Web服务器向客户端返回响应
3、HTTP的请求方法 (重要面试题)
对请求对象(网页、文件、图片...)进行的操作,就是一些命令,程序员在编程的时候使用,在接口文档中会指明,测试人员测试接口的时候,按照说明选择正确的方法。
Get: 请读取一个Web资源(页面、图片、视频、音频、css、js、JSON、XML...)
   比如:点击一个超级链接、进行搜索查询...
Post: 向服务器附加一些资源,或者提交一些数据;
   比如:提交表单指定post方式,提交表单的数据。
其它:
Delete:删除Web页面
Head:请求读取一个Web页面的首部

设计一个登录页面:
浏览器标题:用户登录页面
正文:            用户登录
-------------------------------------
有必要设计表单form,将客户端填写的信息一起提交給Web服务器,表单是一种块级元素,表示一块区域的内容:
点击登录,就会发请求访问URL  请求的方法 get、post
<form action="URL地址" method="get">
              用户名:__________  单行文本框
              密   码:__________  密码框  
                         登  录         提交按钮 
</form>

备份p1.html,重命名login.html
使用记事本编辑login.html
或专业的纯文本编辑器:EditPlus  UE   Notepad++   支持大量源代码的关键词着色加亮
实体:表示空格 &nbsp;

文件协议
file:///C:/Users/tren/Desktop/day01/p1.html?username=Tom&password=123
          网页中设计好的请求的参数名  用户填写的参数值
          名值对
p1.html?username=Tom&password=123
          查询字符串 Query String
        ?参数名=参数值&参数名=参数值&...

面试题1:HTTP常见请求方式、方法?
  Get、Post、Head、Put、Delete、Options、Connect...

面试题2:Get和Post方式有何区别?
1)Get: 适合向服务器索取Web资源  -- 索取
比如:Html网页、css样式表、JavaScript代码、图片jpg png gif、视频mp4、音频、接口返回的结果json文本、xml文本...
常见发送方式:什么样的请求是get请求?
<1> 浏览器地址栏写URL直接回车;
<2> 网页中自动获取图片、css、js等;
     <img src="图片资源路径"/>
<3> 点击超级链接  <a href="请求URL">链接文本</a>
<4> 表单提交可设置为get方式 -- 不推荐
     <form action="URL" method="get">
<5> Ajax发送异步请求可指定为get方式
特点:
<1> 请求的参数在Http请求包头部header发送
     经常在URL后,以查询字符串方式  ?参数名=参数值
<2> URL后携带的信息有限,比如一般不超过2KB
     无法提交大量信息;
<3> 信息在URL后直接显示,不安全;

2)Post:适合向服务器提交大量信息  -- 给与
比如:注册时通过表单向服务器提交大量文本、文件等资源   可以上传文件
常见发送方式:什么样的请求是post请求?
<1> 表单提交可设置为post方式 -- 推荐
     <form action="URL" method="post">
<2> Ajax发送异步请求可指定为post方式
特点:
<1> 请求的参数和数据在Http请求包的主体body中携带;
      信息量大、安全性好,但不是绝对安全,密码需要加密处理才安全;
<2> Post方式适合客户端向服务器提交大量的、综合的信息,比如文件上传等;

4、HTTP响应状态码
响应报文状态中包含的一个3位数字,指明HTTP请求响应的结果,如请求是否成功、失败或其他情况等。
HTTP响应码主要分为5类:
1xx  通知信息
2xx  成功       比如200 请求成功OK  
3xx  重定向     比如302 重定向响应   正常的技术手段
4xx  客户端错误  比如404 资源找不到  重点关注错误
5xx  服务器端错误 比如500 服务器端程序错误、异常
         通过分析后台服务器日志文件: XxxError  XxxException
         比如: OutOfMemoryError   内存溢出的错误  就是内存满了,不够用了
                FileNotFoundException  文件找不到异常   文件名写错了
    在Java、Python中专门为处理错误、异常设计了类型;
    通过不同异常类型反映不同的问题,便于问题发现、分析和解决;
参考HTTP状态码.txt  记忆主要的几个即可

https://www.w3school.com.cn/
W3CSchool文档:
HTML -> 参考手册 -> HTTP消息

Web开发面试题:请求转发和重定向有何区别? 开发工程师常见面试题
1)转发 forward   
多个组件协作完成一个任务,能共享请求中的数据
现象:地址栏显示 小花 地址
      小强          小花        如花
     请求1 ----> 转发给 --->
     响应1 <---------------  响应码:200 OK

2)重定向 redirect  重新开始一个新的任务
现象:地址栏显示 如花 地址
      小强          小花        如花
     请求1 ----> 
     响应1<----  重定向响应 302  响应内容是如花的地址
     请求2 ----------------->
     响应2 <---------------  响应码:200 OK

后续通过Fiddler抓包工具都能捕捉到;

5、URL
1)全称 Uniform Resource Locator 统一资源定位
 简单理解:网址,网络中资源(图片、网页、视频等)存储的位置(服务器、路径)
 客户只有知道资源的URL,才能够请求
2)格式:
http://主机名:端口号/路径
http    使用的协议,有可能是https  
://     固定分隔符
主机名 资源所在的机器IP地址或域名
        如:170.223.2.30
             www.baidu.com
:端口号  使用的端口号,默认端口号一般就省略
          比如HTTP  :80    https  :443
/路径    资源所在的具体位置
          指定那个Web应用、哪个模块、功能点

http://192.168.0.23:8080/JT/order/create.do
协议名   主机名    端口号 项目名 模块名 功能名
方式:Post    参数数据可以用JSON格式提交
功能:京淘购物系统中,订单模块,创建订单

jdbc:mysql://localhost:3306/testing
JDBC协议    本地主机 端口号 数据库名
说明:JDBC协议 通过Java访问Mysql数据库的URL
表示:使用jdbc:mysql协议,访问本地主机中的mysql数据库(端口3306),对其中testing数据库进行连接访问;

后续使用Postman、Fiddler工具,提前安装;
https://www.postman.com/
接口来源:
https://www.idataapi.cn/
需要提前注册
https://www.juhe.cn/   
聚合,也需要提前注册,个人认证时,需要上传身份证照片(正反面)

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

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

相关文章

值得一读!六本网络安全学习必备书籍推荐

在网络安全领域不断发展的今天&#xff0c;深入学习和掌握相关知识显得尤为重要。以下为大家推荐六本有助于提升网络安全技能的经典书籍。 一、《白帽子讲 Web 安全》 这本书由吴翰清撰写&#xff0c;涵盖了 Web 安全的诸多方面&#xff0c;包括常见的攻击手段、防御方法以及安…

XML 学习笔记

简介&#xff1a; &#xff08;1&#xff09;XML&#xff1a;可扩展性标记语言&#xff0c;用于传输和存储数据&#xff0c;而不是展示数据&#xff0c;是W3C 推举的数据传输格式。 XML的标签必须自定义&#xff0c;但是在写标签名的时候一定要有含义。 XML 只能有一个根节点…

微积分-微分应用7(优化问题)

解决优化问题的步骤&#xff1a; 理解问题 首先要仔细阅读问题&#xff0c;直到完全理解。问问自己&#xff1a;未知数是什么&#xff1f;已知量是什么&#xff1f;给定的条件是什么&#xff1f; 画图 在大多数问题中&#xff0c;画图并在图中标出给定和所需的量是有用的。 引…

用闲置的阿里云服务器使用 NPS 实现内网穿透

最近有个项目需要给外地的同事预览一下&#xff0c;但是公司没有可以公网访问的测试服务器&#xff0c;所以想到用内网穿透的方式让外地同事可以访问到我的本机。刚好我有一台阿里云的服务器&#xff0c;双十一打折买了3年&#xff0c;1000左右&#xff0c;2核8G&#xff0c;买…

24年税务师考试补报名即将开始啦

⏰税务师补报名重要时间节点 1⃣️补报名时间&#xff1a;8月6日10:00至8月16日17:00 2⃣️补报名缴费时间&#xff1a;8月6日10:00至8月18日24&#xff1a;00 3️⃣准考证打印时间&#xff1a;10月28日10:00至11月3日15:00 4⃣️考试时间&#xff1a;11月2日、3日 ✅税务…

c#中的BitConverter的java实现

最近在做c#项目的java迁移&#xff0c;发现部分C#方法java中没有对应实现如图&#xff1a; 且java中的数字类型都是有符号的所以转无符号的时候需要进行手动对符号位& 0xFFFF进行处理&#xff0c;目前只整理了项目中使用到的方法&#xff0c;后续有用到其他方法在进行追加如…

HarmonyOS 与 OpenHarmony 的区别详解

随着科技的不断进步&#xff0c;操作系统在我们日常生活中的重要性日益凸显。华为推出的 HarmonyOS 和 OpenHarmony 正是当前备受关注的两大操作系统。它们虽然紧密相关&#xff0c;但在理念、目标和应用场景上有显著的区别。本文将详细探讨这两者的不同之处。 一、概念解析 …

C++复习的长文指南(二)

C复习的长文指南&#xff08;二&#xff09; 一、面向对象基础知识5. 文件操作5.1文本文件5.1.1写文件5.1.2读文件 5.2 二进制文件5.2.1 二进制文件5.2.2 二进制读文件 6. c面向对象的个人心得开发流程6.16.26.36.46.5注意细节6.16.26.3 二、泛型编程1. 模板1.1 模板的概念1.2 …

GRFB UNet——基于多尺度注意网络盲道检测算法实现与模型C++部署

1. 概述 盲道是视障人士安全出行的重要辅助设施。识别盲道的形状和位置&#xff0c;对于增强视障人士的自主移动能力至关重要&#xff0c;而视觉分割技术正是应对这一挑战的有效工具。为了显著提升盲道分割的精确度和稳定性&#xff0c;本文提出了一种创新的分割方法&#xff…

OpenShift 4 - 用 oc-mirror 为离线 OpenShift 集群的 Mirror Registry 同步容器镜像

《OpenShift / RHEL / DevSecOps 汇总目录》 本文适合 OpenShift 4.11 及其以上版本。 文章目录 在离线环境中用 OpenShift 准备 Mirror Registry环境说明向隔离环境复制镜像准备节点环境bastion 节点操作support 节点操作 网络完全隔离环境-复制镜像bastion 节点操作support …

[图解]掉杠·above...duty -《分析模式》漫谈20

1 00:00:01,650 --> 00:00:05,120 今天我们来说一下《分析模式》和掉杠 1 00:00:00,480 --> 00:00:02,800 还是前言这里&#xff0c;有一句话 2 00:00:02,810 --> 00:00:04,850 I will mention 3 00:00:04,860 --> 00:00:05,250 that 4 00:00:05,680 --> 00…

【Golang 面试 - 进阶题】每日 3 题(十四)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…

实战:MySQL数据同步神器之Canal

1.概叙 场景一&#xff1a;数据增量实时同步 项目中业务数据量比较大&#xff0c;每类业务表都达到千万级别&#xff0c;虽然做了分库分表&#xff0c;每张表数据控制在300W以下&#xff0c;但是效率还是达不到要求&#xff0c;为了提高查询效率&#xff0c;打算使用ES进行数…

Java面试题--JVM大厂篇之破解Java性能瓶颈!深入理解Parallel GC并优化你的应用

目录 引言&#xff1a; 正文&#xff1a; 1. 理解Parallel GC的工作原理 2. 配置Parallel GC 3. 监控和分析GC日志 4. 常见调优技巧 5. 持续迭代和优化 结束语&#xff1a; 补充考虑 1. 综合考虑吞吐量与响应时间 2. 评估和优化垃圾回收频率 3. 动态调整与自适应策…

定期自动巡检,及时发现机房运维管理中的潜在问题

随着信息化技术的迅猛发展&#xff0c;机房作为企业数据处理与存储的核心场所&#xff0c;其运维管理的复杂性和挑战性也与日俱增。为确保机房设备的稳定运行和业务的连续性&#xff0c;运维团队必须定期进行全面的巡检。然而&#xff0c;传统的手工巡检方式不仅效率低下&#…

【卷积神经网络】基于CIFAR10数据集实现图像分类【构建、训练、预测】

文章目录 1、内容简介2、CIFAR10 数据集2.1、数据集概述2.2、代码使用2.2.1、查看数据集基本信息2.2.2、数据加载器2.2.3、完整代码 3、搭建图像分类网络&#x1f53a;3.1、网络结构⭐3.2、代码构建网络⭐ 4、编写训练函数4.1、多分类交叉熵损失函数&#x1f53a;4.2、Adam&…

泛微开发修炼之旅--41Ecology基于触发器实现增量数据同步(人员、部门、岗位、人员关系表、人岗关系表)

一、需求背景 我们在项目上遇到一个需求&#xff0c;需要将组织机构数据&#xff08;包含人员信息、部门信息、分部信息、人岗关系&#xff09;生成的增量数据&#xff0c;实时同步到三方的系统中&#xff0c;三方要求&#xff0c;只需要增量数据即可。 那么基于ecology系统&a…

【C++高阶】:C++11的深度解析上

✨ 心似白云常自在&#xff0c;意如流水任东西 &#x1f30f; &#x1f4c3;个人主页&#xff1a;island1314 &#x1f525;个人专栏&#xff1a;C学习 &#x1f680; 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f4…

数说故事|引爆社媒的森贝儿IP,品牌如何实现流量变现?

以可爱、雅痞、贱萌......的外表加魔性舞姿出圈的可爱小狗——森贝儿贵宾犬Milo&#xff0c;用“可爱微怒”的表情演绎着当代打工人的“疯态”&#xff0c;并迅速晋升成不少打工人高频使用的表情包。 最近几年&#xff0c;“萌系”爆款IP频出&#xff0c;用小动物的形象、可爱…

一键生成视频并批量上传视频抖音、bilibili、腾讯(已打包)

GenerateAndAutoupload Github地址&#xff1a;https://github.com/cmdch2017/GenerateAndAutoupload 如何下载&#xff08;找到最新的release&#xff09; https://github.com/cmdch2017/GenerateAndAutoupload/releases/download/v1.0.1/v1.0.1.zip 启动必知道 conf.py …