车载自动化项目:Python

1.  自动化测试用的什么框架?

第一种:Python+Selenium+uittest框架

首先是拿到需求文档,基于这个需求去进行搭建。
用pytest+request+allure 这些第三方库进行编写自动化脚本。

举个例子一般的话整个的一个自动化的搭建是分为6层嘛:

第一层:会去做一个公共层,里面去放一些方法,像可调用的公共函数、数据库之类的。(这些函数是放在yaml文件,存放一些数据库地址,还有URL路径还有业务中会用的比如车辆车型还有用户名密码这一些)

第二层:会做一个配置层,然后配置一些像config这样的yaml配置文件,log配置文件,环境配置文件,数据库的配置文件,里面会放一些路径,像我们业务当中会用到的一些密码信息之类的

第三层:数据层,里面会放一些比方说一些excle 表格

第四层:用例层,比方说云端升级任务。任务有分为手动、自动、预约。还有像任务的审核,审核之后下载,下发任务等。包括一些异常场景都在这个用例层里面。

第五层:主函数,就是调用以上分层里的方法实例。去执行这个测试用例吧。

最后就是报告层:生成一个allure 的报告大致就是这个样子。

第二种:如何介绍自动化项目

在面试过程中,要向面试官讲解自己做过的自动化项目。如何介绍,下面简单说下

可以参考:

面试官你好,最近我做的xxx项目中有接口自动化部分,下面简单给您介绍一下:

1.使用的技术主要是 Python + Pytest + Requests + CSV +pytest-html。

a.主要使用Python编程语言实现,

b.Requests 库主要用来模拟发送接口请求

c.Pytest 主要用来维护接口自动化测试用例。

d.CSV模块主要用来进行数据驱动(数据驱动也可以使用Excel文件,Excel文件使用 Openpyxl 库来操作)

e.pyhtml-html主要用来作为测试报告

2.另外在接口自动化也要处理接口的上下游传参

a.我在接口上下游传参的接口主要操作:

i.先定义字典格式的数据。

ii.在上游接口中编写用例,用例通过之后给字典赋值。

ii.在下游接口中引用字典中的字段值。

b.主要通过字典的方式继续上下游传参。

3针对单接口进行参数化处理的时候,主要使用 csv文件数据驱动

a.首先将测试数据保存到csv文件中

b通过Python的csv模块来读取csv文件中的内容

c借助pytes模块中的参数化功能进行数据驱动。

4.最后,自动化代码完成之后,将代码存放在公司的git服务器上,搭建Jenkins 平台,从Jenkins平台上运行接口代码,代码运行完成之后,通过Jenkins会自动发送邮件到公司邮箱。如果接口出现问题,可以第一时间收到通知。

以上就是我最近项目中使用的自动化。简单概括就是使用 Python+pytest+requests+Jenkins实现接口自动化平台的搭建。

3.python有哪些数据类型?

答:有基本数据类型和集合数据类型两种,基本数据类型有数字型(int,float,complex),字符串,布尔型;集合数据类型有列表,元祖,字典,集合。

4.列表和元祖的区别是什么?

答:共同点:访问数据,都是通过索引访问,都可以存放各种类型的数据

不同点:定义上---列表是[](中括号);元祖是()圆括号

使用上---可对列表进行增删改,元组不允许修改。

5.怎么把一个元祖转换为list?

答:python 把元组转为列表的方法是在元组前面添加list

list_a = (1, 9, 10, 6)
print(list_a)  # 打印结果 (1, 9, 10, 6) 元组是带小括号的
list_b = list(list_a)
print(list_b)  # 打印结果 [1, 9, 10, 6] 列表是带中括号的

6.List你怎么正向排序和反向排序?

答:正向排序(升序)--a.sort()

反向排序(降序)--a.sort(reverse=True)

7.列表和字典的区别是什么?

答:1.列表是有顺序的,如果按照某种顺序向列表添加元素,这些元素就会保持顺序;字典是无序的,如果向字典添加内容,显示的顺序可能会和添加的顺序不同

2.列表中的元素是使用索引访问的,而字典是使用键来访问的

8.Python循环体里面break和continue有什么区别?

答:break--在for循环或者while循环结构中使用break语句,用于结束整个循环

     continue--在for循环或while循环结构中使用break语句,用于跳过本次循环中的剩余语句,然后继续进行下一轮循环

9.Pycharm的自动化脚本的流程是怎么样的?

首先根据需求文档,确定做自动化的内容,在具体编写自动化测试用例前,我们需要建一个测试类继承unittest(就内泰斯特)里面的TestCase类,继承这个类之后我们才是真正的使用unittest(就内泰斯特)框架去写测试用例,编写测试用例的步骤如下:

1)首先导入unittest(就内泰斯特)模块

2)再就是创建一个测试类,并继承unittest.TestCase()

3)然后用setup()(斯塔普)和tearDown()函数来定义初始化工作和收尾工作

4)其次中间定义测试方法,方法名必须以test_为前缀

5)再就是在用例中添加断言判断来判断运行结果

常见的断言:assertEqual(a,b)-断言a和b是否相等,相等则测试通过

               assertNotEqual(a,b)-断言a和b是否相等,不相等则测试用例通过

               assertTrue(x)-断言x是否True,是True则测试通过

               assertFalse(x)-断言x是否False,是false则测试通过

               assertIs(a,b)-断言a是否是b,是则测试通过

               assertNotIs(a,b)-断言a是否是b,不是则测试通过

               assertIn(a,b)-断言a是否在b中,在b中则测试通过

               assertNotIn(a,b)-断言a是否在b中,在b中则测试通过

6)最后使用HTMLTestRunner来生成测试报告,分析运行结果

10.在python数据型中,哪些可以切片处理呢?

答:python中符合序列的有序序列都支持切片,例如列表,字符串,元组。

11.如果我要将一个12345678的字符串通过切片倒过来显示输出需要怎么弄?

格式:[start:end:step]

start:起始索引,从0开始

end:结束索引

step:步长,步长为正时,从左向右取值。步长为负时,反向取值

注:切片取值是顾头不顾尾;切片的步长默认为1,不可为0

答: a=’12345678’

print(a[: : -1])

12.有大概统计过自己写个多少个自动化测试脚本吗?

一般是功能测试模块的10%-30%

我们那个项目写的自动化测试脚本写的比较少,我负责的模块写了50个                      

13.深拷贝以浅拷贝

一个对象有对象父级和对象子级中如果嵌套了其他类型

内部元素的type为number、str、tuple(不可变类型)类型的,改变其中的值,浅拷贝和深拷贝始终不变

内部元素的type为list、set、dict(可变类型,改变其中的值,浅拷贝地址值会变,深拷贝地址值不变

浅拷贝只会将父类复制到新的储存空间,子类的地址值使用原对象子类的地址值

深拷贝会将父级和子级全部复制到对应的新的储存空间,与原对象互不影响

14. setup 、teardown怎么用

setup和teardown是用来处理用例的开始前工作和结束后的工作

setup_module;teardown_module;(模块级别的,优先级最高)

最先执行的前置或者后置,且在整个 *.py 文件执行时只执行一次

setup_function;teardown_function;(不在类中)

只对函数用例(不在class里面的)生效,有多少条函数用例执行多少次

setup_class;teardown_class;(类级)

在类中运行的前置或者后置,只运行一次

setup_methond;teardown_methond;(方法级)

在类中每条用例前后运行的前置或后置,每条case分别运行一次

setup     teardown   (在类里面的)

既可以在类中运行,也可以在类外运行,每条用例前后分别执行一次

15.怎么理解装饰器///装饰器的原理

装饰器本身是一个函数\方法,它的入参和返回结果也是一个函数\方法。被标记的方法是装饰器的入参,装饰器会对这个方法进行功能改造返回一个新的方法,最后执行的就是这个新的方法。

16.测试固件(测试夹具)的作用域和使用方法

@pytest.fixture(autouse=True):声明固件时设置

@pytest.fixture(autouse=True):声明测试固件,并在要使用固件的用例中以参数形式传入固件(beanshell)

@pytest.fixture(autouse=True):声明测试固件,并对要使用固件的域用装饰器进行标记

@pytest.mark.usefixtures('beanshell')

function: 函数级,每个测试函数都会执行一次固件;

class: 类级别,每个测试类执行一次,所有方法都可以使用;

module: 模块级,每个模块执行一次,模块内函数和方法都可使用;

session: 会话级,一次测试只执行一次,所有被找到的函数和方法都可用。

17.怎么做数据驱动

就是在测试的时候,我们用的这些测试脚本和测试数据是分离管理的,使用文件存放测试数据(比如我经常使用的是excel),然后封装好一个加载测试数据的方法,在测试脚本中调用该方法获取测试数据,并对需要做数据驱动的测试方法用@pytest.mark.parametrize()(婆ruai母翘以斯)进行装饰,该测试方法就会在测试数据的驱动下重复执行,有多少条测试数据,该测试方法就执行多少次

1.定义:用测试数据驱动测试方法的执行,有多少条测试用例,测试方法就执行多少次

2.对测试方法进行装饰:@pytest.mark.parametrize('data',testdata)

18.最常用的第三方库有哪些

1)xlrd、xlwt    2)pymysql   3)requests   4)pyyaml    5)pytest    6)allure-pytest

19. pytest装饰器

pytest装饰器

跳过不执行  @pytest.mark.skip( )

有条件跳过  @pytest.mark.skipif( )

标记测试方法为失败  @pytest.mark.xfail( )

标记测试用例的执行顺序  @pytest.mark.run(order=3)  需要安装:pip install pytest-ordering

对测试失败的用例进行重试一共重试3次,每次间隔2秒   @pytest.mark.flaky(reruns =3 , reruns_delay=2)

需要安装:pip instal

20.使用pytest生成测试报告

使用pytest生成测试报告

1安装测试报告所使用的第三方库:pip install pytest html

2运行测试用例并生成测试报告:pytest.main(['-vs','./test_pytest_251.py',

'--hum]=../report/result.htmI'])

21.使用allute生产测试报告

使用allute生成测试报告

pytest.main(["--alluredir"/report/allure_ison''_-clean-alluredir''/T)

1    -alluredir:使用allure运行测试用例

2    ./ report/allureison:定义运行结果数据存储的位置(json格式的结果)

3.   -clean-alluredir:每次执行前先清除历史数据

4    ./:运行当前文件所在路径下的所有测试模块

os.system ('allure generate report/ allure_json -o report/allure_report --clean'

- 将json格式的结果数组装成html格式

22.常见的异常

NameError

IndexEttor:下标越

TypeError

ValueError

KeyError

ZeroDivisionError:  被除数为0

异常从高到低  OFF. FATAL. ERROR, WARN, INFO, DEBUG. TRACE, ALL

23.方法与函数的区别

1. 方法是写在类里面的函数,函数是直接写在python模块里面的

 2. 方法只能被类的对象调用,函数可以被导入到其他任意模块,无条件的调用

 3. 方法的第一参数要写self    《赛额复》

 4. 私有方法只能在当前类中被调用,类的对象无法调用

24.继承

一个类继承另一个类的属性和方法,子类的实例可以访问父类的属性和方法

25.方法重写(方法覆盖)

如果从父类继承的方法不能满足子类的需求,可以对其进行改写。这个过程叫方法的覆盖(override)也称之为方法的重写,子类的实例调用该方法时调用的是重写之后的方法,父类的实例调用这个方法时,调用的是原方法,多个父类有同名方法时,继承时写在前面的父类的方法的优先级高

26.xlrd

Path=”../路径“

     file=xlrd.open_ workbook(path) #创建文件对象

     sheets= file.sheet_names0 #茯取该文件的所有sheet,以列表返回

     sheet1=file.sheet_by_index(0)#通过下标选取要读取的sheet

     sheet2=file.sheet_by_name('name')#通过名称选取要读取的sheet

     name = sheet.name #获取sheet的名宇

     nrow=sheet1.nrows #获取当前sheet的总行数

     ncol=sheet1.ncols #获取当前sheet的总列数

     data_row=sheet1.row_values(rowx, start_colx=0,end_colx=None)#读取某一行

     data_col=sheet1.col_values(colx, start_rowx=0, cnd_ rowx=None)#读取某一列

     data_cell= sheet1.cell_value(×, y). value#读取某一个单元格的值

27.pymysql

conn = pymysgl.connect(host,user,password,database)#获取连接对象

     cursor = conn.cursor( )  创建游标

     cursor.execute(sql)      执行sql

     cursor.fetchone( )       获取查询结果的一条数据

     cursor.fetchall( )          获取所有查询结果

     conn.commit( )               提交(增删改之后都妥提交)

     cursor.close( )             关闭游标

     conn .close( )              关闭连接

     conn .rollback( )          发生错误时回滚

先关闭游标,再关闭连接

28.pytest

文件名以test_*.py或*_test.py

类要以Test开头,不能包含_init_方法

以test开头的方法

如果类不以Test开头,类中的方法即使是以test开头也不会执行

运行该模块下所有的测试用的

pytest.main(["./ test pytest_01.py"])#运行指定模块

-s-v-g 命令参数

#运行指定模块,

-V是详细信息模式,输出更详细的执行用例信息

pytest.main(['-s', './ test_ pytest_ 01-Py'])

#运行指定模块,-q是静默模式,只显示运行结果

pytest.main([‘-q','./test_pytest_01.py'])

#运行指定模块,

#-s是显示用例中的打印信息和日志信息

Pytest.main(['-s','./test_pytest_01.py'])

29.测试夹具

fixture概念和作用

1 fixture是pytest 用于在测试前后进行预备、清理工作的代码处理机制。

2fixture优势

fixrure相对于unittest中的setup和teardown来说有以下几点优势:

1. fixure命名更加灵活,局限性比较小;

2. conftest.py 配置里面可以实现数据共享,不需要import就能自动找到一些配置;

3. scope=”session”可以实现多个py跨文件使用一个session来完成多个用例。

Fixture是pytest精髓所在,就像unittest中的setup和teardown一样,但相对之下它的功能更加强大和灵活。

(详解)试前后的初始化设置,如测试数据准备,链接数据库,打开浏览器等这些操作都可以使用fixture来实现

2.测试用例的前置条件可以使用fixture实现

3.支持经典的xunit fixture ,像unittest使用的setup和teardown

4.fixture可以实现unittest不能实现的功能,比如unittest中的测试用例和测试用例之间是无法传递参数和数据的,

但是fixture却可以解决这个问题

不需要会)用return返回初始化浏览器,return后面的后置条件不会执行,因此需要将return改成yield,后置条件就会被调用执行。

Yield是Python中的一个关键字,表示生成器。测试夹具的前置条件遇到yield时返回一个结果,然后将测试夹具挂起,

转而去执行测试用例,最后回来测试夹具中执行后置条件。Return和yield后面可以不写任何返回值,

表示空没有数据返回

30.常见的配置文件的格式

yaml文件;.properties文件(扑扑替斯);.ini文件;.json文件;.xml文件

31.sql注入

就是通过把SQL命令插入到Web表单递交或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令

防止SQL注入的方法和理念:

1:永远不要信任用户的输入

2:永远不要使用动态拼装SQL

3:不要使用管理员权限

4:密码要加密

32. log是什么,log的级别,log的作用

og是什么:是详细的记录程序运行过程的文件

log的级别:error(爱柔)错误;warn(物嗯)警告; info信息;debug调试

log的作用:方便找到BUG

          Log.v 的调试颜色为黑色的

          Log.d的输出颜色是蓝色的

  Log.i的输出为绿色

Log.w的意思为橙色

 Log.e为红色,可以想到error错误

33. pytest框架下文件、类、方法的命名规范

文件名以test_.py开头

以Test开头的类,不能包含__int__方法

以小写的test开头的方法

如果类不以Test开头的类,即使类里面的方法是test开头也不会执行(默认的是这样,可以自定义更改)

34.最常见的断言

assert   == ;

!= ;   <= ;    >= ; 

is True;    is not True ;

is Flase    ; is not Flase ;

in ;  not in ;

35.用过哪些装饰器(pytest,allure)

Plaintext

@allure.severity('blocker')

@allure.epic(爱呸克)("总描述")

@allure.feature(费切)("测试模块描述")

@allure.story(斯刀锐)("测试描述")

@allure.parent_suite(拍润特,斯锐迟)("上海车进科技信息有限公司-Demo1")

@allure.suite(斯锐迟)('上海车进-注册登录')

@allure.sub_suite('登录')

@allure.description(第斯克瑞斯)("描述内容的意思")

@allure.title(抬头)("用例名称")

@allure.severity(斯歪瑞情)('blocker'):(用例等级)

等级severity_level介绍

   blocker:阻塞缺陷(功能未实现,无法下一步)

   critical:严重缺陷(功能点缺失)

normal:一般缺陷(边界情况,格式错误)

   minor:次要缺陷(界面错误与ui需求不符)

   trivial:轻微缺陷(必须项无提示,或者提示不规范)

36.如何生成测试报告

pytest自带的测试报告不够优美,我们使用allure生成最终的测试报告

37.自动化测试框架的搭建

a.    简历: 基于python + pytest + request + allure 编写接口自动化脚本

b.    安装pytest、request、allure

c.     配置配置文件:log配置文件,环境配置文件、数据库配置文件

d.    封装工具类和方法:http请求的工具类、数据库操作的工具类、测试数据读取的工具类……

e.    对业务中常用的一些操作进行封装

f.     开发测试脚本

g.    组装测试套件(suit),生成allure测试报告

38.python的定位方式?

答:有八种,分别是by.id,by.name,by.class name,by.tag name,by.link text,by.partial link text,by.xpath,by.css selector。我常用的有id,name,class name,link text,xpath。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

火车可视化调车系统

列车在调车作业时&#xff0c;当机车头在尾部推动车厢时&#xff0c;司机室一人操控机车&#xff0c;车厢前端配备两名挂梯随车运行调车员&#xff0c;调车员人为分析行车方向是否有障碍、轨道行人等紧急情况&#xff0c;通过对讲机通知司机控制停车。由于司机无法直观观察列车…

java 执行方式和类加载过程

java默认属于混合执行&#xff1a; 编译和解释并存 java先进行解释执行&#xff0c;遇到多次重复的代码会把它编程成可执行文件&#xff0c;方便下次直接执行。 可以通过VM参数来修改执行方式。 类加载过程

centos7指定目录上传到google云盘

from datetime import datetime, timedelta from concurrent.futures import ThreadPoolExecutor import os,time,subprocess,tracebackdef run_cmd(command):"""运行命令并返回输出。"""shell Trueprint(command,command)result subprocess.r…

【软件测试大作业】京东系统的Selenium自动化测试报告

1访问地址 https://wwwjd.com 2 点击左侧导航 手机/运营商/数码 2点击左侧导航"影音娱乐"的子类"蓝牙/无线耳机 4商品筛选点击查询的第一个商品(选择默认类型款式颜色)一>6.设置商品数量,点击"加入去购物车结算" Selenium测试的数据驱动设置 请结…

C#,泰波拿契数(Tribonacci Number)的算法与源代码

1 泰波拿契数&#xff08;Tribonacci Number&#xff09; 泰波拿契数&#xff08;Tribonacci Number&#xff09;是斐波那契的拓展。 泰波拿契数 (Tribonacci Number) 即把费波拿契数 (Fibonacci Number) 的概念推广至三个数。 2 计算结果 3 源程序 using System; namespace…

Linux Shell编程系列--变量的定义与使用

一、目的 上一篇我们简单介绍了shell脚本的组成以及如何运行一个shell脚本&#xff0c;本篇将详解讲解shell中的变量。在Shell脚本中&#xff0c;变量是用来存储和处理数据的基本结构。 二、介绍 1、定义变量 变量名与等号&#xff08;&#xff09;后跟值来定义一个变量&#…

antdpro框架npm install 报错,切换tyarn安装成功。

报错日志 有时间补 当前版本 解决办法 进入工作目录 安装官方推荐的tyarn工具&#xff1a;npm install yarn tyarn -g 进行依赖安装&#xff1a;tyarn 启动项目 &#xff1a;tyarn start 注意&#xff1a; 技术迭代较快&#xff0c;建议查询官网后实践&#xff0c;以上作为…

大模型实战营第二期——3. 基于 InternLM 和 LangChain 搭建你的知识库

github地址&#xff1a;InternLM/tutorial-书生浦语大模型实战营文档地址&#xff1a;基于 InternLM 和 LangChain 搭建你的知识库视频地址&#xff1a;基于 InternLM 和 LangChain 搭建你的知识库Intern Studio: https://studio.intern-ai.org.cn/console/instance动手学大模型…

前端面试题——JS实现反转链式表

前言 反转单向链表就是将整个单链表的数据进行倒序的过程。 例如&#xff0c;如果反转之前的单链表是0->1->2->3&#xff0c;那么反转之后的单链表应该是3->2->1->0。这个操作通常是通过改变链表中每个节点的指针方向来实现的&#xff0c;即让每个节点的指…

《Git 简易速速上手小册》第10章:未来趋势与扩展阅读(2024 最新版)

文章目录 10.1 Git 与开源社区10.1.1 基础知识讲解10.1.2 重点案例&#xff1a;Python 社区使用 Git10.1.3 拓展案例 1&#xff1a;Git 在大型开源项目中的角色10.1.4 拓展案例 2&#xff1a;支持开源项目的 Git 托管平台 10.2 新兴技术与 Git 的整合10.2.1 基础知识讲解10.2.2…

猫头虎分享已解决Bug || Go Error: Missing Return at End of Function

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

【算法与数据结构】42、LeetCode接雨水

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;   程序如下&#xff1a; 复杂度分析&#xff1a; 时间复杂度&#xff1a; O ( ) O() O()。空间复…

猫头虎分享已解决Bug || Go Error: redeclared as imported package name ‍

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

微服务入门篇:http客户端Feign(远程调用,自定义配置,Feign的性能优化,Feign服务抽取)

目录 1.基于Feign的远程调用1.RestTemplate方式调用存在的问题2.Feign的介绍3.定义和使用Feign客户端 2.自定义配置1.方式一&#xff1a;配置文件方式2.方式二: java代码方式&#xff0c;需要先声明一个Bean: 3.Feign的性能优化1.Feign底层的客户端实现2.连接池配置 4.Feign的最…

Java:JDK8新特性(Stream流)、File类、递归 --黑马笔记

一、JDK8新特性&#xff08;Stream流&#xff09; 接下来我们学习一个全新的知识&#xff0c;叫做Stream流&#xff08;也叫Stream API&#xff09;。它是从JDK8以后才有的一个新特性&#xff0c;是专业用于对集合或者数组进行便捷操作的。有多方便呢&#xff1f;我们用一个案…

课堂秩序要求有哪些内容

你是否曾经疑惑&#xff0c;为什么有些课堂总是秩序井然&#xff0c;而有些则混乱不堪&#xff1f;作为一位经验丰富的老师&#xff0c;我想告诉你&#xff0c;课堂秩序不仅仅是学生安静听讲那么简单&#xff0c;它背后涉及到许多关键因素&#xff0c;直接影响着教学质量和学习…

Learn LaTeX 015 - LaTex Typeset 抄录

https://www.douyin.com/user/self?modal_id7306721102380764453&showTabpost GitHub address: https://github.com/yasenstar/learn_latex Gitee address: https://gitee.com/yasenstar/learn_latex

Acwing---837. 连通块中点的数量

连通块中点的数量 1.题目2.基本思想3.代码实现 1.题目 给定一个包含 n n n个点&#xff08;编号为 1 ∼ n 1∼n 1∼n&#xff09;的无向图&#xff0c;初始时图中没有边。 现在要进行 m m m 个操作&#xff0c;操作共有三种&#xff1a; C a b&#xff0c;在点 a 和点 b …

k8s-资源限制与监控 15

资源限制 上传实验所需镜像 Kubernetes采用request和limit两种限制类型来对资源进行分配。 request(资源需求)&#xff1a;即运行Pod的节点必须满足运行Pod的最基本需求才能 运行Pod。 limit(资源限额)&#xff1a;即运行Pod期间&#xff0c;可能内存使用量会增加&#xff0…

视觉SLAM十四讲学习笔记(二)三维空间刚体

哔哩哔哩课程连接&#xff1a;视觉SLAM十四讲ch3_哔哩哔哩_bilibili​ 目录 一、旋转矩阵 1 点、向量、坐标系 2 坐标系间的欧氏变换 3 变换矩阵与齐次坐标 二、实践&#xff1a;Eigen&#xff08;1&#xff09; 运行报错记录与解决 三、旋转向量和欧拉角 1 旋转向量 …