好,我们接着来讲这个 job。 job 呢,除了像这种很一次性的任务,我们称这种 job 为一次性的任务,另外还有一个周期性执行,也就是说一个定时任务。定时任务跟他写法语法上面差不太多。嗯, 不止一份吧。 淋巴 是考场教务,就是他们 写法跟他一样。 但是你如果是定时任务的话,那你就没必要。没必要什么指定他结束的一个条件是吧。就直接直接写 这个。就 ground job, ground job 一下面都一样。我们弄一个 we start, 要么是 never 啊。如果指定为 on fender 的话,它这个 pod 还是会在当前节点,但是它会 他会重重新运行啊,在当前节点重新运行。这个但是没有 说明上下就没有说明在当前没没记录,就是没有说明在当前节点啊,破的仍在。 嗯,这样才挡你的脸,只不过 会被重启。你要么就指定那会这你重启呢?那你的自己的这个定时任务,你得保证这个重启之后的这个,保证他的这个逻辑不会出错啊。 这个是对自己的注意,要么就是呃,遇到错误。那我这里就是 never, 从来不重启啊。可以准备 never。 还有另外一个是 never 啊。 containers 最前面的。嗯, job 他们捏的。哎,应该有一点点区别啊。我记得这里应该不是他们捏的,应该叫 job 他们捏的吧, 就不疼你了。哎,试一下就知道。待会如果报错的话。 p c 哎呀,这有点有点搞混了。但是 p c 下面应该有一个 complet, complet 下面然后再有一个 spc, 应该是这样的。应该是这样嵌套的。 那这个就应该对得上 s。 p c。 这是最外面的这一层。这里我们需要直径 schedule。 我们就如果说这就一个 current 表达式。 current 表达式,那这个就是 hurry。 hurry 为 e r y every minute。 就是每分钟执行一次啊。每分钟执行一次。这个下面的逻辑还是保持一致。 job temper need 好,我们来 we pass。 现在 job 以前的 job 应该还在。 这是旧版,跟我这个没关系, 清一下做一下。垃圾回收。这个已经创建了,关掉。 huh 好,这个人在运行, 还在拿我这杯呢。 star 姐的已经启动了啊,已经完成了。他已经完成了他这个待会过一分钟,他这里他又会执行。 好,你看这第二个已经执行完成了。那我暂停一会啊。你看他就是一周期性的执行。 好,这个听一下。那这小节就要讲到这里哈。 cross job 一干掉。
粉丝877获赞6148

哈喽,大家好,我是乐特,今天教大家使用 rust 语言读取并解析 ym 文件呢,我们先卡购盈利的一个项目,使用 vsco 打开, ok, 我们在这个根部上新建一个文件,比如说叫 user 点 y, m, l 文件第一个字段 name age 保存好,我们先读取这个文件并打印出来。 let it fall class, 等一个 s, d, d, 再列提一个 e, m, s, t, r, print l, n, 把里面这个信息打印出来,我们使用卡构运行一下, ok, 他能读取出来啊,但是这只是个支付串呐, 我们想要把它解析成结构体啊,那怎么做呢?我们要安装两个库啊,他够首先啊的一个叫 cdoyaml, 我们还要安装另外一个库,卡购啊,这个 cd 杠杠 features set you derive, ok, 这样安装好了,安装好之后呢,这卡够这个唾沫文件,这里就是这样的,只需要使用这两个, 酷啊啊,我们现在开始解析啊,我们先先要定一个结构体啊,是 drop, 比如说叫右转,它里面有两个自动,一个是 name 词句,另外一个是 a, 嗯, i 三二,呃,这个结构体上我们需要加上这三个 打印的,虚的话,反虚的话只用这个 c 九这个,然后我们类推一个空飞一个啊, u 轴吧,冒号,它是这个 u 轴结构结,等于这个使用这个 c 九 y, a, m, l, 它可以 from from s t, r, 把上面这个 s, t, r 传给它,上面这个 s t, r, 它是一个字母串的,但是这里它需要是一个字母串切片传进去,可以按这一个 s t, r, 最终把它一个按 rap 一下,最终我把这个 usb 打印一下,那这里报错了吗? 这样我们再运行一下卡 go run ok, 没有问题啊,打印的非常清晰啊,但这里有一个细节需要注意啊,就是这个地方,呃,我故意把这 a 定义为 i 叉二类型的,就是相当于 number 类型,因为这里我确实没有加引号,他确实是个 number, 但是如果把它加上引号会怎么样呢?我们再次执行一下,你看他会爆错啊。 所以这里为了将心更好的话,我们最好把这个 ad 定义成是菌类型的,因为这个数据其实我只是用来展示的。嗯,换成死菌之后呢,我们再运行没有问题,即使我这里把这个 呃引号去掉,我会看到没问题,就是我里面这个结构体,如果他是一个 number 类型的话,我们把定义成十菌的话,他的兼容性会更好啊。就是说你外面这个 这个文件的话,你不管是一个数字还是加上引号啊,它里面都能兼容到,对不对?那如果, 如果加上引号的话,那里面我定义成这个什么 isr 类型的,我们可以看到他直接这个程序拍,你肯定啊,也就是意味着我这个外面不能加引号,这样他就是对的。所以我之前写了一个掏了程序, 他里面有个版本号啊,就有这样的问题啊,所以我后面呃把里面这个字段改成那个时间类型注册类型啊,就不管这个配置文件他是 支付串的这个数字,还是直接这个数字,他都能兼容到,因为那个字段其实对我来说只是用来显示啊, 这就是使用这个 ras 的读取并解析这个淹没文件的代码呀,而且是这个地方需要注意的地方。好了,今天的分享就这里关注,教你更多权杖知识!

抖友们大家好,欢迎大家来到 python 编程语言系列课程,这节课呢,我们来讲解 yam 文件处理, 那么在这节课当中呢,我们会给大家去讲解什么是压木文件,为什么要使用这种压木文件啊?压木文件的这种基本语法规则都有哪些,以及压木的一些数据结构啊,以及压木文件的处理。 那么通过这节课的学习呢,大家需要去掌握压木文件的文件格式,以及如何在程序当中啊进行压木文件的一些操作。好,那我们一起到教程当中来看一下,什么是压木文件呢? 那么 yam 文件呢,它是一种嵌套式的语法啊,它的全称是 yam 是吧? and in mark up language, 啥意思呢? 他说这个亚么?他不是一种标记性语言啊,他不是个标记性语言,那在这里面他名字的检测里面还有个亚,为啥说是一种嵌套式的地规缩写,对吧?啊?就是这种形式, 他这个还能再解析,他解析出来还是这句话啊,还是这句话,但是我们没有必要无限解析下去啊,那他是说我们知道他的全称啊,中文翻译过来就是他不是一种标记语言,那但是呢,他是 这个以,它是这个强调数据这个本身啊,而不是以标记作为重点的。那什么是标记语言呢?我们的 h m l 啊,就是在前端当中使用的 h m l 啊,叉 m l 啊等等这样的一些语语言,我们称之为标记语言 啊,那比如说 h m l 叫做 hypertex 的 mark, 那个 mark upper language 啊,叫什么呢?超文本 编辑语言啊,超文本标记语言,而这种样格式呢,它不是标记啊,它只是一种数据格式啊,只注重我们数据本身, 那么要么呢,由于这种格式非常简单啊,它的可读性非常高,而且它比较贴合我们这种程序语言的数据结构啊,同时呢,这种 表达能力啊,扩展能力也非常强,所以说呢,一般我们会在程序当中使用它来进去存储一些数据啊,标记一些数据。那为啥要用这个压木文件 啊?那可以用样文件呢来做配置文件使用对吧?哎,它相对于 windows 上传统的 i n i 文件或 康复的配置文件来说,它的这种写法更加简洁啊,更加简单,那操作起来呢,也很方便,那么还能存不同类型的数据是吧?而像 windows 上这个 i 文件呢,它就只能存搜串类型的数据,那 存完了之后,我们在成绩当中想要用的话,还得再经去手动转换,对吧?因为它类型是不能自动转换的,但是压姆文件没有这个 没有这个问题啊,那等会我们再去看,那样子当中的语法规则呢,他是有这么几个规则,第一个大小写敏感啊,大小写敏感。第二个呢,他跟拍森一样也使用缩进来表示我们的层级关系啊,表示层级关系 那么肃禁的时候要注意,它不允许使用 type 键,要注意啊,这个 type 键是指杠 t 啊, 上 t 这个制表符,而不是说我们按一下 tab 键。那么如果我们的开发工具当中你设置了 tab 键啊,为空格显示的话,那么这个时候呢,是允许使用 tab 键的,他只允许出现空格啊,只要你的空格数对就可以了,那么 空格的这个促进数目呢,不重要,对吧?那刚才你又说空格数,对是吧?哎,数目不重要,但是呢层级啊,相同层级的元素左侧必须要对齐,就和 python 的语法结构一样,你在 这个写程序的时候,同一级别的代码,他必须是缩进相同的,就你前面的空格数是相同的啊,这才可以。所以说呢,我们说允许使用空格,那空格呢,数目呢,又不重要,但是呢,你 左侧要对齐啊,同一级别要进行对齐,然后在井号啊,出现井号的时候,井号表示注视啊,表示注视,那是他的一个写法,然后样当中他的一个数据结构是啥样的? 它包含这么几种类型,它和 jason 数据比较像啊,和 jason 数据比较像,那么第一个呢,它描述有对象, 第二个呢,有数组,就是一种用来进去描述映射关系的建制队形式,对吧?还可以变成不同语言当中的什么映射关系, mapping 啊,或哈西这种形式,或者是字典的这种形式啊,其实这 都是统称建制队形式的啊,建制队的形式集合,然后还有一种就数组,数组呢,就是按照我们顺序来进行排列的,是吧,序列啊,列表啊,数组啊等 这样的一些形式,这是他的第二种语法容器类型,还有这两个,然后第三个呢,他一种在这里他称之为叫斯卡勒斯,叫纯量啊,就是单个的不可再分的值,其实就是我们排词当中的基础数据类型,对吧?那就纯量类型, 那么我们下面就来看一下这几种类型啊,他是如何进行去表示的。在样文件当中啊,那么字符串呢?不需要用引号包裹啊,你直接写就行了。在这个文件当中啊,他是不需要用引号来表示他是字符串的, 那么只要他解析不了其他的值,就按自务串来处理啊。那首先呢,第一个在这里面,这是一个简单的对象类型,那这个对象类型呢? t 是 animals, 然后呢,这个值呢?就是谁啊?值是这个歪 啊,只是这个啊,只只是这个,这个,这个倒杆啊,那么这个文件如果我们通过一定的方法来进去转换到拍森当中之后,那么它的类型变成一个具有一个剑指队元素的字典 啊,要有一个剑指对元素的字典变成这样,然后呢下面呢,这是一个稍微复杂一点的,那这个是什么呢?这是一个剑,这个字典嵌套啊,那 person 呢?是 key, 然后呢这 key 当中他用了这种这种直接可以写字典的形式啊,他就会把这个字直接写成字典, 那么这个时候呢,这个字典当中又包含了三个见字。对,那么他解析出来之后就是这样啊,是一个字典嵌套的形式,那这是字典,也就是他的对象类型转换成 python 之后,映射成字典, 那然后竖组,那竖组呢?他比较特殊啊,竖组呢,是在这里面,只要我们以横杠开头,一个中横线啊,这不是下横线,这是个中横线,只要以中横线开头的,那么这个元素独占一行,我们就认为他是一个竖组元素啊,一个竖组元素, 那么在这里,比如说我们写了 one, two, three, four, 对吧?哎,前面都有一个杠,那么这个时候呢,他会把它简易成数组,一个数组,然后数组当中有五个元素,而下面这种形式, 下面这种形式,下面这个呢?他现在就变成了一个二维数组啊,二维数组,那二维数组的外层数组呢?有两个元素啊,有两个元素,因为他有两个杠,这是对齐的,对吧?然后呢,里边这个呢?每一个元素又有三个紫元素啊,每一个数 元素数组啊,或者是元素列表又有三个元素啊,又有三个元素,那解析出来就是这样啊,解析出来就是这样。好,那么在这里 还有一种类型呢,叫纯量类型啊,那纯量类型呢?他就是基本数据类型,包含了自顾串类型,对吧?刚才我们说了不需要 双引号进行这些包裹,其实就是不需要引号包裹,而布尔类型值在这里,它支持大小写的处和 for 都行啊, 整数,那就是数字浮点数,就是小数。时间啊,使用 iso 八六零幺这种格式,使日期和时间之间啊,时间和日期之间使用一个 t 啊,使用一个 t 来进去分隔一下啊,如果有时区的话,用加号来表示,如果是单纯的日期,那么必须要用这种格式 啊,就四个年,两个月,两个日的这种形式。然后呢空啊,还有一个空值,那可以用这种波浪线来表示,是空啊,来表示空。 那么这是我们当前的这个存量啊,他有这么多类型,然后呢,我们在这看一个啊,存量类型解析的时候,如果说在这里,你看就是印的类型,对吧?哎,十二,然后 flow 的类型这样,那解析出来之后注意啊,这些 都是前面这个 k, 都是字符串啊,他都是字符串,你看转换成字典之后啊,他都是字符串的形式,那在这呢? 呃,我们在这啊,我给大家写了一个小提示,什么呢?就是有冒号的,只要你前面不管是啥,只要后有个冒号,后面跟东西了,那他一定会把这个东西解一成字典。你看,我们在这前, 我也不管他是不是关键字,因为拍子当中认为这些是关键字,那亚目当中可不是这么认为的,对吧?哎,所以说呢,只要他前面啊有一个东西,然后一个冒号跟着一个冒号,英文绊脚的冒号,那我就认为这就是一个字典当中的 k, 然后后面跟的是他的值, 然后换了一行之后,因为每个数据独占一行吗?换了一行之后,那这个又是 t, 然后呢加上冒号,加上它的值,那整个这些就作为一个字典来进行体现了。那好,那最后我们来看一下这个复杂的结构的样子格式,那这种复杂结构呢?它是这样的, 首先呢一个字母串,对吧?哎,我们说不需要引号的,一个字母串,然后冒号啊,那我现在能分析,这是一个 k 对应了一个啥呢?对应了一个值,那注意啊,这个值现在是啥?这个值我往下一发现他没有写值, 而是写到下面,用一个三杠来表示了,那这表示这三个元素肯定是一起的,他是一个数组,对吧?也就是一个列表,用拍子的话说就是个列表,那么也就是说这个 cool list, 他进去对应了一个值,这个值是个列表,就有三个元素的列表,对吧?然后呢这个 hard list, 而他呢对应了啥呢?他也对应了一个数组啊,也是对应了一个列表,因为为啥呢?你看这个是 k, k 完了没东西了,然后跟着你说这个不是应该是个字典吗?他确实是个字典,但是你看前面还有个杠呢, 但凡遇到杠了,他就说明他是个列表的元素了。那你说一个杠,两个杠,三个杠?当前列表当中,在这一级别上啊,就有三个元素,分别是一个字典,是一个列表,然后又是一个 字典,这个字典 k 是 test, 然后这个 test 里面对应了一个列表啊,对应了一个列表, 然后再往下又变成了一个什么呢?一个 key, 对吧?哎?一个 key 就是字典当中外层最外层字典中的第三个 key, 然后呢在里面对应了一个列表,这个列表只有一个元素,然后呢这个列表里边又对应了三个子列表啊,这个三个子列表,每个子列表当中又有一个字典,对吧?啊?又有一个,呃,这个,呃,不对,对应了一个列表啊,对应了一个列表,然后列表当中有三个元素,这三个元素呢?分别是 一个字典啊,分别是个字典。好,那我们来看一下,这个是一个整体啊,是一个具有三个兼职队的一个字典,那我们来看在这里整体他是不是个字典,然后具有一个,两个, 三个健身队,对吧?三个健身队,那第一个呢?健身队呢?他是 keep。 koolist 对应了一个列表啊,那这个 koolist 对应了一个列表,对吧?然后第二个呢?这个 heart list, 它对应了也是个列表,然后列表当中呢?它有三个元素。那我们首先看 哈喽利斯特对应了一个列表,这个列表当中有一个,两个,三个元素,对吧?哎,三个元素,那三个元素前两个比较简单,他是个字典,就 k y 六,然后他这个列表就直接写的,对吧?就一二三,关键是这个, 这个里面呢,他又包含了一个啥呢?又包含了这是个字典,对吧?哎,又包含字典,就 task 作为 key, 然后呢这个又是一个列表,那就是这个 key 对应了一个列表,你看 task 对应了一个列表,对吧?哎,对应了一个列表,好,然后最后一个, 那最后一个呢?这个 chase list, 那他对应的首先呢是一个列表啊,这列表这个列表里只有一个元素,那么看这是一个列表在这,然后他只有一个元素,那一个元素呢?也是一个列表,对吧?哎,这个列表当中有三个元素,就这个列表当中有三个元素, 他还是个列表呢,有三个元素,那这三个元素就是三个字典啊,那这就是我们这个样文件的格式啊,那他通过 这种标记形式啊,这种数据格式不能说标记形式,因为他不是标记语言,他通过这种数据格式可以转换成我们拍子当中的对应的数据类型。那么通过这个呢,我们可以进行去做很多事情,比如说做一些配置文件啊,比如说去做一些数据驱动的一些数据存储文件等等 啊,一些用场景,那我们如何通过程序来进行操作这些数据呢?啊?那么下面来看一下, 我们如果想在 python 当中啊操作样文件,我们可以需要安装一个叫 p y 样的这样一个软件包啊, p y 样的,这样的一个模块,第三方模块叫 p y 样, 那安装方式非常简单,不给大家演示了啊,你已经安装过很多软件包了,叫 pap install py 样,或者说你直接用图形模式啊进行去在解释器的配置选项当中搜索 pyy 样进行去安装。安装之后呢,在这我们只讲两个方法啊, 一个叫 safeload 啊,一个叫呃,这个叫 safe dump 啊,这个这个这个这个 dump 也行啊,用 safe dump 呢也可以,那在这呢,我们通过 这个漏的,他是读取压木文件,啥意思呢?就是说现在我们可以在当前程序当中去找到这样的一个呃压木文件啊,这个文件里面就按照我们上面这些格式进行去书写就行了,写完之后呢,他会去读取这个文件,读完了之后把这个文件里的内容给他 转换到程这个程序当中的对象类型啊,我们就可以在程序当中用这个数据了,而这个 dump 或者 save dump, 他的作用是向文件当中写入数据啊,向文件当中写入数据,你可以去写一个非常复杂的数据,然后呢去把这个文件给他写进去啊,写进去看看档次里面是什么样的。好,那么我们在这呢,打开这个, 首先啊,在这里我们去看一下,我在这有一个呃样文件处理好,那然后呢我们在这啊,这样,我 把这个就这个复杂结构,我把这个复杂结构咱们给他复制下来,对吧?这是一个压木文件格式吗?我在这创建一个新建右键一个 file, 然后呢写上一个 dat, 点啊点压木,他的后缀名就是压木的好,然后呢?把它粘进来啊,粘进来保存一下, 保存完了之后好了,那下面呢,我们继续引炮他啊,给他收起来。引炮他,引炮的导入谁呢?导入一下一样, 然后呢,你要进行去位置啊,打开,通过上下文管理器 open, 打开这个样本文件,那我们现在要去从已有的文件当中去读,对不对啊?所以说在这呢,我们写搜的是对的,点这个,然后以 r 的模式打开, 然后 at 一个 file, 然后打开之后。那现在呢,我们说在这通过一个 data 啊, 或者说内容吧, content 等于等于什么呢?等于样点儿有一个 safe load, 安全加载啊。 safe load, 那加载的时候我们只需要把赛奥给他放出来就行了,那他现在就把数据放到 content 里面去了,那我们现在可以直接打印一下 content 啊,这就是文件读取 压木文件,文件读取操作啊,读取操作。好,那现在我们看读取出来之后,你看现在这个数据是不是这样,对吧?哎,读是这样,那这个呢?现在我们说它是个字典,那我可以去便利啊 for 这个 k, 然后 v 印,印谁呢?印这个 content, 然后我们在这打印一下 k 和 v, 对吧?啊?呃 sorry 啊,这块应该写上点 at m 四啊 content, 然后点 items, 好运行一下, 看在这是不是三个字典,对吧?三个字典,那每个字典呢?对应了一个值啊,这里面这个我就不给大家去打印了啊,很容易看,那么最后呢,我们再取一下,比如说取下这个值吧。咳,我们再打印一下 content, content 谁呢? content 在这儿取一个哈德利斯特, 它的类似的,我取的是这个,对吧?然后呢,我要取这里面的纸,把这个三取出来。啊,把这个三取出来,那应该怎么取呢? 现在我取到了他这,累死他了。那能取出这个列表,这个列表当中是不是有三个元素,是吧?哎,那应该这个取个二啊,取个二,二,这个呢取的是最后这个元素,这又是个字典,那在这个字典当中我们再取一下 test 啊,这个 k, 然后在这个 k 当中取出个列表,我们取出二,然后运行,看看他取的是不是三, 对吧?哎,九十三,那这样的话我们就能拿到这个数据了,对吧?哎,拿到这个数据,好,那么这是从样文件当中进行去干什么呢?进行去读取文件啊,那我们也可以像样文件当中去写入文件, 他在写入文件的时候,同样他要打开一个文件,但是在这呢要用 w 的模式啊,用 w 模式,那文件你想保存什么类型数据?因为他都能相互转换吗?所以说在这里你可以准备一个数据,对吧?来准备一个数据,那我们在这呢去准备这样一个数据来看一下啊,我说有一个,呃, response, response data 等于等于什么呢?等于这么个东西啊?一个字典,那在这儿我们说就是写入 下压文件中,写入数据。好,那这块写个啥呢?写一个这个状态啊,能写个 stars 冒号,然后呢?写个两百啊,两百。然后呢?在这写一个,呃, starscode 吧 啊? starts code 等于两百,那这个啊,注意,他得用引号引起来,这个不是个样母念,这是我们 pass 的程序。然后呢在这儿 message 啊, message, 或者说 m e s s e d message。 等于一个。等于什么呢?等于一个 ok 啊,等于个 ok。 好,然后呢我们再写一个。 再写个啥呢?再写一个 data。 啊? data, 好,那 data 呢?它里面又包含了一个。 呃,这个你看啊,包含一个,我们包含一个列表吧。啊?包含一个列表吧,然后这列表当中呢包含了一个字典。啊,包含了一个字典,那这个字典当中呢?是这样写的, 它里面有多个数据啊,比如说 a c c e p t accept, 那 accept 冒号,然后呢在这冒号,然后这写一个什么呢?写一个这个。呃,星,冒号,星啊,星点星点星。 好,然后呢在这把它复制一份啊,把它复制一份。好,那在这呢我们就不写那么复杂了,我就在这写一二三四五啊,就这样就行了。好,那现在呢?我们就把这个数据呢写好了,像已经相当于比较比较复杂了。 字典里面套列表,列表里面套字典,对吧?啊?我们现在比较复杂了。好,那现在呢?我们再给他加一个吧。啊?再加一个,加一个什么呢?加一个 content type, 那在这我们再去加一个 content。 杠太 看他的 type 里面啊,他包含一个列表啊,包含一个列表,那在这这个列表当中呢?我们去写上这样几个数据。那比如说一个,呃,以内指啊,以内指杠,杠谁呢?杠天际的,然后呢?以内指 杠,然后呢?这个叫 g p e g 啊? g p e g, 然后 in g, 杠,杠,还有啥呀? in g g i f, 是吧?然后呢再来一个 in g, 然后这块写外边 p。 啊,好,那这是四种图片格式。那现在呢?我们把这个数据写好了之后, 我们现在这样写位置 open, 你要去打开一个文件,那我们说一个 alt put 点儿压木文件,然后呢用一个 w 的方式打开,艾特一个 file, 然后在这里面我们直接调用一样点啊,直接在这呢,我们用一个 save dump 啊, save dump, 那其实用 dump 也行啊,也行,其实没有多大的区别啊,没有多大的区别,那这个呢,就是安全写入,可能在县城上他是安全的。那我们写一个 save dump, 那首先呢,你要把这个 response data 给它放进去,然后呢再把 file 给它放进去好了,那这就写完了, 我们现在只要一执行它啊,只要一行执行它,那我们这个数据就被写进去了,那运行来看一下,写完之后啊,也不知道成没成功。我们来看有一个叫 alt put 点样子的吗?有,那么 双击打开看,那在这里他就会把这个数据给我们写到这里面去,对吧?哎,你看 dat 是个字典,那啊,这会啊,这个数据啊,注意看他的这个顺序呢,写的时候可能跟我们的不太一样,但是转换出来之后啊, 应该是没有问题的,一会我们再读一下来看一下,看,我先写的是 star 扣的,然后在这 message, 对吧?哎,但是呢,他现在先有是 dat, 因为他要 keep 排序的时候,应该是我觉得是按字母的顺序来进行排序,是吧?哎, dat dat 完了之后呢,在这 好了, set 一二三四五。哎,那在这我给他改一下啊,我给他改一下,我这个叫呃,五四三二一 五,然后一四,哎, 三二一。好,然后呢我们再进行去运行一下,运行完了之后我们来看一下啊,那这个还是按照我们当前的这个这个写入顺序来写好。那 dat 里面呢?我们写的是什么? dat 里面对应的 是一个列表啊,列表里面每一个元素都是个字典,那你看,在这 dat 冒号这时候表示它是一个 k, 就是个字典,然后这里面呢,每一个都是个 他是个列表当中的元素说明,所以说他前面都有一个杠,然后这个元素对应的是一个字典数据,所以说在这有一个剑之队,是吧?又有一个冒号剑之队了, 然后在这里面看到 tap 对应的是个列表,你看这个列表,他的层级就进来了一级啊,进来了一级,然后里面有外国 p 啊,外国 p, 然后呢?因为这个啊,注意他不是建制队的啊,他只是一个自古 串元素,对吧?啊?一面指 p n g 接平 a g, g, f y, o p, 然后 message 等于 o k, 然后 stars code 等于两百。好,那下面呢?我们在这里啊,再把它读出来,再看一下啊,读出来,那在这我们再进行一些位子, 然后 open 打开啊,打开谁呢?打开 off to 的点儿 yam, 然后呢?以 are 的方式打开,然后艾特一下 file, 然后怎么打开呢?在这我们说还是 content 等于一个一样,点 save load, 是吧?还是加载这个 file, 然后在这儿直接打印一下 content, 那来看一下运行 打开完之后啊,它,它这个转换了之后,就没有我们之前定义的格式了,还是以 dat 开始的,对吧?哎。 dat 开始的,然后呢?在这 message slash code, 那,这跟这是相反,那在这啊,其实字典 当中这个顺序他并不影响啊,因为字典最终存储的时候,他是要以哈西的形式来进行存储,本身他的位置就没有确定性,对吧?哎,所以说在这里这个位置啊,并不影响他的这个实际使用。 那这个呢,就是我们压木文件的一个操作啊,以及他的一个文件格式。那在这里呢给大家进去讲解了啊,我们如何去编写压木格式的文件,是吧?那那讲解了如何进行去通过程序来操作压木格式,那么 那么格式主要干啥用呢?它可以来进行一些配置文件,也可以给我们的这个程序呢来提供数据驱动啊。那关于这个数据驱动, 我们在下节课啊,这个会给大家进行去讲解,进行去演示。那这节课大家主要掌握的还是如何精确操作我们的样本文件数据。好,那关于样本文件的操作,我们这节课就讲到这里,下节课再见。

好,下面呢我们来给大家讲解一下 k 八是极速入门的第六部分内容, k 八是集群资源清单加没有文件的一些书写方法。 通过全面课程的学习,波仔呢已经啊掌握了这个 qbaxy 条命令,在我们 k 八 s 集群当中啊进行简单的一些操作,操作的过程当中,波仔发现对一些这个基础类的一些这个命令啊,操作起来确实是非常方便的,但是呢,对一些这个在 k 八 s 集群当中进行大量的 资源管理和大量的资源对象编排部署,比如说啊,创建大量的这种资源对象或者删除大量资源对象的时候,我们会发现 quber ctrl 这个命令啊,在命令行当中的简单操作可能无法满足要求了。 那么如何去满足波仔在 ks 集群当中进行大量的资源管理呢?那在这里我们建议啊,波仔可以去使用 k s 集群当中对资源管理和资源对象编排部署呢,都可以使用的一种啊方法,那就是通过他的声明啊样式文件来解决这个问题啊,这个声明样式文件呢,就是我们所讲的这个雅妙文件, 我们把对资源对象的一些操作啊都编辑到哪去呢?都编辑到我们的这个亚美文件的呃这个当中去,然后呢,通过这个文件啊来对资源对象进行相应的比如说创建啊,删除等操作。那么我们把这种亚美文件叫做什么呢?叫做资源清单文件, 那么我们只要能够通过课本 ctr 命令来控制这或者是来使用这些资源清单文件,我们就可以实现对大量的这种呃,这个资源对象啊,进行编排部署了,那么接下来呢,我们就要学习一下我们声明样式的资源清单文件应该如何进行编写呢?那在这里我们 往下看啊,我们的学习目标,我们的学习目标呢有两点,第一点呢,就是要了解亚麦文件的一些书写格式啊,这个是我们必须得知道的。第二呢是了解通过亚麦文件实现资源清单的描述方法。第三个呢,我们要看一下我们的学习步骤了,那在这里呢,我们来看一下我们的学习步骤是什么呢? 那第一步啊,就是我们先给大家介绍一下养麦文件的书写格式。第二步呢是通过养麦文件实现资源清单来描述我们的这些资源,当然我们在这个地方会给大家举例说明。 好,我们先来看第四部分内容,就是我们的课程主体内容。课程主体内容呢,在这里首先第一个内容呢,我们先给大家去讲解雅妙文件的一些书写格式。在这一部分内容当中,我们将分为三小点给大家来介绍,第一个呢是雅妙的介绍,第二个呢是雅妙的基本语法,第三是雅妙的一些书籍结构。我们先来看第一个内容,那么什么是雅妙呢?通过前期某些课程的学习呢,我们 大概也了解过啊,比如说像安斯普课程的学习,它里面就会用到了亚麦尔这种标记语言,所以呢,我们在这里应该知道啊,亚麦尔啊, 他仍是一种标记语言的意思啊,他呢这个主要是为了强调我们数据为中心,也就是为数据服务的,而不是以标记为中心,他呢跟我们前期所了解的 htm 包括 xm 是一样的,都是以数据为中心,而不是以标记为中心的, 也没有这种呃,编剧语言呢,他的可读性啊比较的高,因此呢,我们拿它来完成对我们的这个资源的清单描述啊,也是一种非常符合我们的一个这个应用逻辑的啊,或者用理念的。 好,那么这是一个亚麻药的一个介绍,那么下面呢,我们看一下亚麻药的一个基本语法,他的基本语法呢,其实是相当简单的啊,就是一个东西啊,我们在编写的过程当中啊,使用 用空格做一套缩进就可以了啊,其他的这个我们要在数据结构当中给大家去讲,那么缩进的时候啊,大家要注意缩进的空格的数目,他到底重不重要呢?哎,是不重要的,有的时候呢,我们可能会使用两个空格,四个空格,六个空格,八个空格,有的时候呢,我们可能会使用这个呃 三个,五个、七个的这种空格,那么正常情况下呢,我们都是用二四六八的这种空格来表示就可以了啊,那么这是一个呃呃非约束约定成熟的一种操作方式,你只要啊把你相同成绩的元素呢左侧经对齐就可以了,其他的都无所谓。好 啊,还有呢,在这地方要提醒大家一点就是啊,亚麦尔,他分为亚麦一点零,二点零,三点零啊,像亚麦欧一点零的缩进呢,是不支持我们家的这个推波键的,只允许空格,但是呢亚麦亚的三点零呢是可以支持推波键的,那么如果你使用推波键的话,在我们 整个的编辑过程当中,他可能空格会更多,所以呢在这里主要是看大家的一个操作习惯。那么再提醒大家一点呢,就是我们养猫语言当中依旧可以使用啊塞尔编程当中的警号来表示相关的这个注视,如果你在一行的行数呢加上警号呢,表示啊,这个行呢都将会被注视掉,会被我们的解释器禁忽略。 好,这是基本语法。我们下面再看一下亚没有的支持的一个数据结构,亚没有支持的数据结构呢,主要有三个啊,第一个呢就是这个对象,第二个呢就是数足,第三个呢就是在这里我们会提到的一个成量。 我们先看第一个内容啊,那就是对象,对象的话在这里他是一种这个兼职队的集合,我们有的时候呢也把它称作什么呢?叫做映射,或者叫做哈西啊,或者叫什么呢,或者叫做字典啊,像在我们的拍摄啊语言编程当中啊,这个字典呢是非常相像的,下面我们举例说明一下啊, 对象呢,他是一组建筑队啊,一般话呢用这个冒号呢啊进行这个分割表示的,当然他有见有直嘛,中间要加冒号,但是呢大家要注意他的书写格式, 比如说我们现在看到的是内幕啊,冒号,嗯,后面加一个 tom, 但是大家一定要注意中间这个位置有个空格,后面呢再加上一个歪了啊,就是 tom, 还有呢 a 级也是一样的, a 级冒号空格以后幺八这个位置加上就可以了, 那么呃,这是一种表折方法啊,另外一种表折方法呢?呃,可以这么写,比如说像我们前面写上一个键啊,后面呢用画框把 多个啊,这个这种间值段,然后放在画括号当中来作为我们前面的这个箭的一个值出现,那这个位置呢,就用画括号表示,那这也是一种这个行内的一个的这个表示方法。好,这是我们的一个对象的一个表示,那下面我们来看数组哈,数组呢,是一组按次数啊次序进行排列的值, 是吧?我们可以把它叫序列,再把它叫列表,你想拍成语言当中有个列表啊,我们用中括号来表示的,对吧?那同样在这个位置,我们也可以用这种方法,那下面呢,我们就来看一下我们数组的一个表示方法的举例。那数组的表示方法呢?在这里边啊,有两种方式,第一种呢,大家看 啊,以这个呃连词开头的,行啊,构成一数组,比如说这个地方有个皮包,对吧?人啊,那么这个位置呢,有一个连词符啊,就是我们家的减号啊,啊,两个减号,那每一个减号呢,后面呢,就对应了一个值,对吧?就对应一个值,这这样就可以了。那这种方法呢,在我们的这个 呃,最近清单文件当中用的啊,是比较多的还是比较多的啊?好,下面还有一种方法啊,也可以用行内的表示方法来做,你比如说这个皮包,然后冒号以后呢,这个位置要加空格,空格完了以后,中国号里边把我们上面所对应的这个纸呢,把它写过来就行了,那么直之间呢, 使用逗号进行隔开,那么这个位置呢,可以加呃,空格,也可以不加空格,这个位置倒无所谓了。好,这是我们的一个数组的表示方法, 下面再看一种纯亮,纯亮指的是什么呢?就是啊,单个的不可分割的值,你比如说一二三,他如果是一个数字的话啊,那你就不能把它分割了,这叫一个纯亮,就是 abc, 他如果是一个字不串的话,那在这里他是一个整体,你就不能把它进行分割,所以呢,在这里他叫纯亮。 存量呢,我们一般最基本的不可分割的值,那么哪些是存量呢?你比如说像我们讲的数值啊,直接表示字面量的啊,这种叫存量。当然这个表示方法呢,也是用的一种对象的表示方法来表示的,对吧?啊,这个是可以有的。嗯,然后呢布尔直,比如说 choutus 啊,这种的话也是一种存量啊。 啊,包括啊,那也是一样的啊,还有时间格式的啊,比如说时间格式采用的是 ico 的八六零幺的这种格式啊, ico 的八六零幺, 那后面呢,这个位置就是一个纯量,这也不能分割的。还有日期的这个复合的这个 ico 的八零零幺的格式,年元日表示,那么你可以用这种方式来表示。还有呢,就是我们想没有允许使用两个叹号来进行强类型的转换啊,那么在我们最近清叹当中,这个位置用到的不是太多。 好,再来看一种叫做自胡串,这种纯粮自胡串的默认啊,不使用这个引号来表示啊,你像拍摄语言开发当中的这个,比如说在这个讲到字典的时候,他的他的这个 啊,自负串和他的数值呢啊,他们两个是不一样的,他的自误串呢,用的是引号引起来,他的数值呢是不需要引号引起来的,如果引起来以后呢,就表示他也是一个自误串,那在这里呢,我们也没有当中是不需要用引号给他表示的,比如说这个位置啊,他这个位置呢,就是一行自弧串啊,你可以不用引,那如果自误串之间包含了空格和特殊自符的, 那么需要放在引号当中去把它引起来,那么这个位置呢,我们用单引号引,你看中间有个空格是吧?有个空格我们用单引号引起来,当然了,我们单引号双引号其实都可以用啊, 并且呢双引号也不会对特殊的这个字符呢进行相应的转移啊,所以呢,在这里你看啊,这个位置单引号啊,这个位置是双引号,那么在这里呢也没有转移, 单引号之中如果还有单引号怎么办呢?那必须要使用啊两个单引号来进行转移才可以,比如说,哎,这个单引号,呃,中间包含了一个单引号,那么这个时候呢,再加一个单引号,哎,表示啊,这个中间是一个单引号就可以了。 那么如果说字无串呃,这个比较多的话,我们也同样可以把字无串呢写成很多行,那么从第二行开始呢啊,必须有一个单空格作为一个缩进啊,那么这个换行符呢啊,也会被这个转化为一个空格,所以 大家要注意这个,比如说这个位置有自负状,这个位置有一行,对吧?那下面呢这个位置呢就,哎要空格了,空格 才能往下写,当然我们有的时候呢,在这个呃运媒的过程当中可能会遇到一些这个配置文件,那如果遇到了一些配置文件的话,我们也可以使用配置文件,他行比较多呀,对吧?内容比较多,我们也可以使用多行的方式来在养媒文件当中把 给定义下来,如果你使用多行的话,我们啊可以使用这种管道服,然后呢进行这个呃,进行这个折叠啊,这里边呢举了势力啊,比如说这是张三啊,李四啊,王五啊,然后等等啊,这样的一个势力在里头, 这个呢就是我们的雅妙文件的一个书写格式。那么我们给大家讲了这么多以后呢,需要我们不断的通过视力,然后去验证啊,我们刚才给大家所讲的所有的理论内容,以便大家能够更加的熟练, 因此呢接下来我们要给大家去讲解啊,我们的这个资源清单的一个描述方法,我们甚至于举例给大家说明他,所以呢在这里边大家会看到啊,我们的杨梅有的文件的一个影子。好,关于杨梅有文件的一个介绍呢,我们就给大家介绍到这里,这个位置到此结束。

好,以上呢我们通过命令行创建了我们的色贝斯,那下面呢,我们通过资源清单两面文件来创建我们的色贝斯, 那么如果要创建四位数的话,同样我们要编写我们的资源清单文件,那么资源清单文件呢?在这里边我们会把 我们的应用以及我们的思维思呢写到一个文件,或者写到两个文件当中去都是可以的。好,那在这里呢,我们把它写到一个文件里去, 想到一个人念里去了以后呢,在这里边首先第一个呢就是我们先来创建一个迪普拉曼的控制器类型的这个什么啊?这个相关的应用。好,我们在这个位置要给他创建这个迪普拉门的类型的相关应用。创建完了这个应用以后呢,我们会给大家创建一个这个思维思,在这个位置呢我们就创建一个思维思,那么这个思维思呢,就是我们啊将要这个创建的内容。 下面呢我们来看一下我们这个文件的具体的一个写法,那现在呢,我们就来编写这么一个文件,我们看一下我们现在文件已经有呃,三个了,那我们编写第四个 文件零四,我们要创建什么呢?我们要创建一个啊,迪普拉闷的控制器的类型的应用啊,加上他的四类似阿闷的。然后呢还有一个就是,呃,我们要创建这么一个,我们叫 app 二吧, 然后呢再加上一个四位四啊,后面呢再加上一个什么呢?再加上一个杨妙就可以了,我们把这个点啊杨妙加上。好,这是我们的一个文件,那么接下来我们看里面的具体内容, 如果在同一个雅妙文件当中包含了多个这个呃资源的话,建议大家还是尽量使用啊,三个这个连字符把它进行什么呢?进行六分割,一二三,这是第一个 啊,下面写上第一个内容,这是第二个,下面写上第二个内容就可以了。前面的这个位置我们写上一个迪普拉曼的控制器类型的应用的这个资源清单,下面呢,这个位置我们把这个思维思的这个资源清单写过来就可以了,当然我们不可能写的特别简单哈,我们这个位置先把它定一下啊, 从上往下开始,而且首先呢,我们来做一个底普拉门的控制器类型的运用的发布,那么在这里写 api w 势, api w 势磨好加什么呢? apps 斜杠为一啊,这个位置一定要注意,后面呢加上一个 ctrl 也是一样的啊,底普拉门的。 好了,那么这个位置完事了以后呢,我们这个应用的名字叫什么?叫做 mattlete, 然后呢再加上什么呢?加上我们的 mattat 的名字。一二,好, 加上我们的应用的名字,我们的应用名字叫 n 这个的钱 app 二,这样就可以了。那么勒布呢,这个位置我们可以不用去考虑,我们直接啊给他。呃,对于我们这个应用的一个期望啊。 style 四百个是什么呢?在这里有三点要写一二,呃,然后哪三点呢?一个是追不来 cas, 然后是几呢?我们写个二叫追不来 cas, 也就是我的副本呢,是两个,这个用呢有两个 pose 来运行啊。再然后呢,就是我的这个史莱克的啊,史莱克的呢,在这个位 各位要注意,你可以现在写也行,或者是你稍后写也可以啊,都是没问题的。好,哪个位置写啊?这个位置少了一个空格。好,我们把它大体上写上一二三四啊, max 啊,匹配,匹配的标签是什么呢?匹配的标签呢?在这个位置我们可以把它一二三四五六,比如说我叫 app, 后面的加上什么呢?加上一个。 呃,这个 app 我叫 apps 吧,后面加上一个什么呢?加上一个 ng 的,那这个位置我们先把它放在这,好吧,先把它放在这好了,那这是第二个内容,第三个内容呢,就是我们的 pold 一个模板啊,叫 tom 类的啊, tom 类的后面加什么呢?一二三四,后面加上一个。呃, mate, 呃, 这是我们的一个啊, pold 的相关的标签,那么这个标签呢,一定要注意了,与我们本来的标签要保持一致。那刚才我们已经给大家强烈过了,所以呢,这个位置我们要加上啊,一二三四五六,加上一个雷宝, 加一个雷宝,那这个雷宝叫什么呢?一二三四五六七八 a p p s, 然后呢加上一个 n 即可。好,那么这个位置他们类的写完了以后呢?下面还有一个就是我这个 pold 啊,他的一个期望,你 pold 不是有标签了吗?对不对啊?模板里面对 pos 期望是什么呢?那在这里一二三四,然后写 spa。 好,他是属于这个他们类的对象的下面的啊,所以呢,一定要注意,只要在他们的在下面写啊,那么在这里的 pos 期望的是容器,所以呢,一二三四五六,然后写 ctrl 啊,写抗天的就可以了。 c u n t a n e r s 那么抗天的我们写什么呢?一二三四五六,然后我们写上他的卡,天的名字 叫 ngx a pp 二,对吧?啊,康天乐的镜像呢?我们使用的是银 mate, 哪个镜像呢? ngx ex 这个镜像。再然后呢就是我们的新人下载策略,好银 mac 一媚姐,什么呢? po, 然后后面加上一个,呃, polic 后面加一个衣服 note, 加一个 pose, 然后这样就可以了。好了,还有一个呢,就是我们的容器所对应的端口,一二三四五六七八,容器所对应的端口呢,在这个位置我们直接用一个 啊数组的方式来写就可以了啊,很轻的啊,加一个 pose 啊,后面再加一个什么呢?加一个八零,这是容器里边所对应的端口。 那行了,这个迪普拉们的控制器类型的应用呢,我们就已经写完了,那么紧接着呢,我们要做一件事,那就是给这个应用啊里边的 pose 给他添加一个 swees, 让别人呢可以通过 swees 来访问 pose, 因为现在我的 pose 有两份,那么具体访问哪一份呢?对吧, 我能通过 cv 四我都可以防的到啊,那 cv 四怎么创建呢?一定要注意,我们用分隔线,那么这个分隔线下面这些四 v 四啊,不要放在一块钱,放在一块钱的话就麻。 好,我们写一个思维思啊,思维思的类型呢,在这里也他的接口类型, apr 的类型, ipa 的窝式呢,也是唯一版的,所以呢, apr 卧室这个位置呢,空格以后写唯一啊,空格以后这个位置写唯一就可以了。好看的类型呢,各位要注意看到呢,在这个位置我们就写大写的 s 啊,叫思维思啊,叫 s e r v r c e。 那么后面还有一个是 mattet matet, 里面写什么呢?写上我们的这个 suvice 的名, suvice 的名称,那 suvis 的名称的话,在这您可以自己去定义啊,我刚我们刚才看到那个 suvis 名称跟我们的用的名称是一样的,是吧,那这个位置我们可以定义好吧,一二啊,这个内 内幕,这个 cvc 叫什么呢?叫做分这个字减 app app 二二,然后减 svc, 我这么写就可以了啊,这是一个 cvc 名称啊,这个不会有太大的障碍,这个无所谓。这个啊,因为我们访问的主要是 cvcip, 当然了,如果你部署的是一个 这个嗯,三周复赛的这个三维四的话,那这个位置我们就需要去注意了哈。啊,这个位置底盘的控制器类型的,这个位置不需要注意了啊。呃,那么你对斯威斯的期望是什么啊?比如说斯威斯所属的类型啊,斯威斯啊里边所使用的端口啊,不管是他给的破的还是破的,他累,他里边的期望是什么?所以呢还是 spec 啊,自拍给的,后面加上一二,然后呢加上类型,类型是什么类型呢?特拉斯 ip, 特拉斯的 ip 类型好,特拉斯 ip 类型呢,其实只能在局往当中被访问,嗯,再然后呢就是我们的呃这个端口了,那么这个端口呢?呃,是一个 s 啊,为什么 s 呢?因为很多端口啊。啊,一二我们这个端口呢做出的协议呢? party go 就是我们的什么 tcb 协议,就是 tcb 的八零啊, tcb 多少多少都是 tcb 的协议哈,一二三四,我们有一个这个容器的端口叫八零,我们对标到我们的容器当中去的话,那么我们就使用他给的, 然后这个 pos 他给的 pose, 那就是也是一个八零,也是一个八零。好了,那在这里边我们思维斯如何与我们的底盘们的控制器类型的这个 pos 清关联呢?大家会看到底盘了们的控制器类型的这个 pose 的这个标签是 app sngx, 对不对?所以呢,我们在思维斯当中也应该加入这么一东西,也 应该加入一个史莱克,那么将来这个史莱克的目的是什么呢?哎,加入这个史莱克的目的呢,就是为了让他与 poss 赢关联,所以呢, se led 后面呢,我们再加上什么呢?一二三四,我们说啊,你给我找一个叫 app s 的,叫 ngs 的那么一个 pose, 把它关联起来就可以了。好,那这样的话,他们两个之间就能够关联起来了,要不然的话没办法关联 好了,这就是一个四 v 四的一个钻研清单文件,那么这个钻研清单文件写好了以后呢,我们现在啊,就要来啊,应用这个钻研清单文件了。好,我们把它保存,最终保存最终以后呢, 我们来应用这个资源清单文件,那这个资源清单文件的运用呢?非常简单,也是用 fplan 的方式来运用的哈,我们直接啊 qq 跟 ctl fl fl f 后面呢,把这个资源清单文件给他加过来就 ok 了。好,那现在呢,我们直接来应用一下啊, 直接来给他应用一下,怎么用呢啊?扣分, ctrl flan, 然后呢?减 f 要好,姐姐会唱, 大家有看到,首先呢他创建了一个迪普拉门的控制器类型的这个应用啊, ng 的 app 啊,其次呢就是创建了一个斯威斯,那斯威斯呢就是 ng 的 app svc 啊,这样就可以了,我们来查看一下迪普拉门的控制器类型的应用,以及斯威斯啊,迪普拉门的 控制器类型的这个应用,直接回车,大家看到了啊,这个就是哈,这个就是没错。然后呢还有一个就是呃色 vc 个边 cpl 盖的 suv, 呃叫做 cvc 或者 suvc 都是可以的,是吧?啊,这样推荐或者是 svc, 这样都可以,大家会发现他的 这个名字呢就是我们定义的名字,然后 n 这个字 app 二 svc, 然后呢这个呃类型是克拉斯 ip, 他的 ip 地址是这个,然后呢对应的是八零,那么在这里边我们呃 这个能不能够防盗车的呢?当然是可以的,我们直接使用扣,然后呢直接访问他的 ip 就可以,幺零点幺零七点幺三,七点幺幺三,然后直接回车,大家发现这就是我们的这个呃网页的内容, 这就是咱们的网页内容,就这么简单,那么他如何与我们的 pold 进行关联的呢?那在这里面呢,我们刚才讲到了,是通过我们的标签来做选择的,当然我们也有一个安的 pand 啊, swiss 也会有安的 pand, 所以呢安的 pand 的 plus 里边呢,你也会发现这个东西, ngx 的 abb 二对应的 svc, 他对应的两台这个两个容器啊, 一个是幺八九点六,那六八点幺八九点六八,一个是二三五点幺三三,当然我们也可以去修改我们炮火相关的内 啊,完了以后呢,我们再访问,大家会看到我们的思维思呢还具备一个功能,那就是他具备一个负载均衡的功能,我们来看一下到底能不能实现。我们首先呢看一下我们的 pose, 大家会发现这个两个位置呢,就是我们的这个 pos 啊,我们现在呢进到这个 pose 当中去,把这个网页文件啊给他改了,这个网页文件呢,我们就把它叫做什么呢?叫做这个 pose, 呃,叫做这个 这个 ngx 的这个 ngx 的这个 pose, ngx app 二的 pote 一,这个位置呢叫 ngxapp 二的这个 pod 二,我们把它给改一下,我们看看能不能够啊,直接访问到两个 pose, 呃,直接怎么改呢?我们有个命令叫 qq bictel ex ec 啊, ex execex ec, 然后减 it, 嗯,再加上什么呢?加上我们的这个炮的名称啊,加上炮的名称以后呢,我们直接啊运行 sh 就可以了,好在这个位置直接这么来,大家看到我现在已经进到炮的里边的容器当中来了啊, 那么我 cd 到我的优势啊,这个帅里边的 ngx 里边的 html 里面去啊,这个位置不支持推爆,所以呢 html html 进来,那么进来以后呢,你会发现这里边有一个首页文件,那我们可以把这个首页文件给他改变一下啊, ico, ico 呢?在这里我们写一个 啊,在这里写一个嗯,这个字,然后 app 啊,然后呢加上一个什么泡的一,然后用一号把它引起来,放到哪去呢?就放到我们的这个音 带死这个文件的后来啊点 htm, 然后直接回车,回车完了以后你可以看一下因带个字点 htm 这个文件内容,大家看内容是这个,那么这是第一台啊,那么第二个 pos 我们也可以这么修改,也可以这么修改。当然了,这仅仅只是测试目的啊,实际生产当中不需要大家这么测的啊,因为我们已经这个会了,所以就不用这么测了, 那如果你要是不会的话,你可以这么测,我们本次运行一个半时,我们看能不能运行,大家看也是可以运行的啊,啊,这样也可以运行,然后我们 cd 到这个优势下的山药,然后下面的 ngg, 大家看,这个比较友好啊,他可以推爆啊,就是没问题的。 ms, 你看一下,我们直接艾扣,这个应该也是没问题, 我们直接在这个位置写一个啊,嗯,这个色 app 二,然后呢?叫的什么呢?叫的 pod 二,然后呢把它写到我们的,嗯, 写到我们的音带字点 ht m l 这个文件当中来,我们退出来哈,退出来以后呢,我们再来访问,那么我们刚才访问的那个思维思的 ip 呢?啊,是幺,零点幺幺零七点幺三,七点幺幺三,然后直接回撤,大家看,这是第一台 啊,这还是第,这是第二台,看到没有啊,这是 pose 一啊,这是 pose 二,这完全没问题。由此可见,我们的 k 八 s 集群呢,他是可以实现这个什么呢?负担区分功能的哈,他可以实现这功能的,你看还是完全没问题的。当然了, 这个在调用的过程当中呢,我们发现他实际上没有按照我们的规律来,为什么没有呢?哎,我们可以在预约课程当中了解到这一点,好,关于这个斯维斯啊,呃,这个访问啊,我们的这个 pose 的演示呢,我们就给大家这个演示到这里。好, 关于通过这个资源清单文件创建 clas ip 这种类型的思维式的方法呢,我们就给大家说到这里。

上一节最后呢,咱们提到了 yml 文件的书写,他是否有一个格式要求,这节咱们就来说说这个事了。这种格式啊,其实他有一个官方的名称,叫做压面,四个单词的缩写, 它实际上是一种数据存储格式。说的简单一点,和你前期看的 xml 婆婆类似,包括这种烟庙这三种都是属于数据存储的格式,两千零一年就有这个东西了,有什么区别呢?比对一下, 如果你看到这里边的数据,就整体来看啊,你会感觉他的格式更加主要一些,有这种感觉吧,数据其实不是他的主体,但是你要看下边这一组, 你会觉得格式就没有 x 三妙那个格式显得重要了,他是以数据为中心,而中间的婆婆太死,还好吧是吧,数据在右边,格式在左边,因此从整体上来说的话,亚妙这种数据格式啊,更容易阅读, 并且在与其他的脚本语言交互的时候方便一些,你说怎么算方便呢?这个你得看和脚本语言的交互过程,咱这不研究这个,咱们就说他的格式,大面上来看的话,和 charmel 相比, 他是不是数据更加的凸显一些?数据格式就不像这边要求这么严谨的,所以对外来看的话,以数据为他的中心,他重数据而轻格式,这是他的一个主要特征。那么目前 外边写这个压面文件呢,主要的是使用点 yml 作为后缀, yaml 也能用啊,前面咱们都见过了,对于这种数据来说,我们要做的是知道他的格式怎么书写,你能书写出格式正确的压面文件就 ok 了。 至于其他的信息,现在先不用关注啊。来,下面就给大家说一下他的格式要求。其实对于任何语言的格式要求啊,主要的就是让你知道这个东西不能乱写,但是我总结的,不管是什么语言,他写出来首先不能反人类, 就是让人写着很难受,这人用的就不多,看看他的格式要求,一,大小写敏感教程,写个大写内幕,小写内幕是指俩词,这个 ok。 第二,属性的层级关系使用多 常描述,看一下这儿,一个属性两个属性三个属性就告诉你啊,每个属性占一行也还 ok 吧。然后属性的结束符是冒号,就这个符号了也还 ok, 对吧?然后再往下来看啊,说使用缩进表示层级关系, 同层左侧对齐只允许使用空格,其实就是告诉你,现在啊, 这是第一集,这是第二集,这是第二集,这是第二集,也能接受,只不过前面他对齐是用空格对齐的,这个和我们平常书写的习惯不太一样,我们一般搞编程是不是贴 a b 啊, 这个是用空格对齐的,也能接受。下边属性值前面要听个空格,这就是前面给大家说的那个空格了啊,这 是用来区分属性写完没写完的一个标志属性名,慢号空格,后面的东西就全部都是数据了。最后一个 井号表示注视,没什么需要过多解释的,整体感觉还好吧。我告诉你,这个肾千万不要背, 因为我们书写时候你不是背着格式写,而是应该写的时候慢慢习惯于这种格式来到咱们的。哎,第二下咱们写一些啊,咱们先来写几个比较简单的信息,比如说我们先来写一个国家的信息, c o u n t r y 好, 写完一个属性名,冒号,空一格,写数据, c h i n a china, ok, 这就是写好了一个数据,然后我们再来写一个省的, p r o v i n c, 再来一个北京, ok, 又一个数据,再来 来一个 city, 冒号空格,北京, ok 吧,再来一个 a r e a 冒号空格,海淀 非常容易写,就是写完手心名,打个冒号,来个空格,后面写值就这样。这是写我们比较常见的这种字符串数据,就这样写啊, 如果你想写数字的话,可不可以写?也可以啊,比如说 pot, 冒号空格,八零八零,这就是写一个数字了, 我们会发现写数字和写字符串是格是一样的,他没有特殊的标志,这个要小心,后面有一个地方有个坑,咱们到实用篇再去讲。 除此之外,他还可以写 boling 型的,比如我们写一下你是否是党员, p a r t y party, 就这么写就 ok, 出作死,就这样写,你说怎么不变色,人家有人家的 设定规则。再来写个日期, b i r t h d a y birthday, 我们写一个一九四九杠幺零杠零幺, 就这样的格式,其实他有一套完整的格式要求的啊,上面我们写的这些数据啊,其实都是单一的数据,在我们的页面中还可以表示对象。我们写一个人的信息,看一下 uzer 冒号,记得这是第一集,第二集呢,敲完回车,前面空格, 你看,哎地儿多好,直接帮你把空格写上了,那你就不要操心了,内幕冒号,我们来个 it cost a 级冒号,来个十六岁 搞定,这就是写一个对象,这就相当于一个 uzer 对象,他的第一个属性,第二个属性还可以接着往下写,那再写一个吧,我们再 再写个优字,冒号回车。哎,写到这你会发现出事了,出什么事了?同样的名称只允许出现一次, ok 吧?那这个时候你把这俩值摆在这没有问题,但是这个地方你就不能这么写了,比如说写个 u 字二,这就不冲突了,这点一定要小心呢,包括下边我们再写个内幕冒号,比如写个 it 黑马, 是不是同名的属性不允许重复啊?那怎么办?删掉一个吧,把这一行拿掉了,这是 ok 的啊。到这里呢,咱们就看了普通的单个带属性值的属性,以及对象的怎么写。如果你想写很多层级,也可以, a 冒号回车, b 冒号回车, c 冒号回车, d 冒号回车, e 冒号,然后给个数据一二三,这就是使用五级属性名来描述一个数据。那如果 我们这要描述多个数据呢?比如说我现在要描述一个人的爱好信息, lex, 冒号回车。在下边写他的属性的时候,记得 多个数据中间使用减号来进行区分,先写个减空一格再写。比如比较喜欢 game, 再往下写一个 music, 再往下写一个 sleep, 玩游戏,听音乐,睡觉等等等等一系列的往下写。 至于中间这个空格,你可别忘了,比如说你在这写一个一二三,这个格式是不被接受的啊,好,这是我们的数组,比如说那对象数组怎么写? 来吧, uzars, 来个减号,注意,现在你在写的就是属于 uzzars 这个保存多个 数据的信息了,里边写什么?内幕,冒号、空格,张三。 回车以后,你下边写的和内幕是同层的,直接写 a 级冒号,比如说十八岁,然后再写下一个人的时候退回来减号,然后再来内幕冒号空格立四,然后 a 级冒号,空格十七,这就是多个人。 但如果你要看着这个格式不舒服的话,你可以改成下面这个格式,我这写个 us 二啊,看清楚,回车, 然后在这个减号后面回车。现在是不是看着就比较清楚了啊?这是属于一个人的信息,这是属于一个人的信息,和上面这个格式是完全一样的。上面这些格式呢,不管是哪一种的 书写,其实大量的都有矮地工具帮你整理格式了,所以说大家写这个东西啊,不要担心,基本上写出来都还好。最后呢,说几个缩略格式啊, 来看一下我们的这个 likes, 他可以做一个缩略版的格式,写个 likes, 冒号重了,我写个二啊,然后空格中口号,在这里边写 game, 逗号 music, 逗号 sleep, 这就是写数组,和上面的格式是一样的,只不过用中口号来描述是个缩略版的格式啊,同时下面的这个东西也能写写一下给大家看一下啊, 写个优字,死三了啊,然后冒号,然后来个中口号,但是这里边是不是放的都是对象啊?那这里边描述对 对象怎么描述呢?就像你之前写杰森一样的,来个大括号,逗号,大括号,明白什么意思吧?然后内姆,冒号张三,逗号 a 级,冒号十八。 有人说这个地方你还用不用加空格了,这就不用了啊。然后我们再来一个内幕,冒号李四,逗号 a 级,冒号十七。像现在这个格式就和他的格式是对应上的。到这里呢,咱们就看了若刚种格式, 其实你以后写不了这么复杂的格式,通常啊,我们以后写的这种格式比较多,你说这 abcd, 这算什么呀?把名改一改,比如说我们写上一个 solver, 点破特等于八零, 这不就写了一个吗?你看看和上面的格式有什么区别。这也是描述对象属性的这种格式啊,就是在 sore 这个对象里边有一个叫做 pot 的属性,他的值是八零,包括你前面写的日志的那种,其实都是这样的一种形式。到这里呢,咱们这个格式就看完了, 不要记到底有什么规则,你就记得一点,哎,第二下给你识别的格式基本上是 ok 的啊。回到资料上来, 对于这么多的语法格式,你就主要记一个东西,数据前面要用空格与冒号隔开,就记这一个就够了。 其他的那些格式,基本上矮子点都能帮你提供。接下来呢,看几个常见的数据啊,前面都写过,比如说你要是表示各种各样的类型的数据,用这种格式来描述,像整数, bolin 这些都见 过了,空使用这个符号,波浪线小数直接写啊,然后字符串的,你可以加引号,也可以不加引号,你说我什么时候加引号?比如说中间你加空格,那你必须表示他是一个完整的数据,这时候加上引号, 对日期和日期时间型的格式了解即可。等到你写到了,去查对应的格式就好,一个 t, 一个加号,表示他日期、时间和时区之间的一个风格符 像这种东西写起来还是比较少的啊,对于数组怎么描述,刚才大家也都见了,看一下,这个 萨布杰克的下面包含仨数据, and price 下边有个萨布杰克的包含仨数据,或者使用缩略的格式。而我们对象数字的格式,刚才也给大家写了,前面来个横线,这就代表这是一组数据了,然后下边这是另 外组数据,前面都有这个横线。如果你感觉这个格式写起来比较别扭,你就用下面这个格式,让我们的这个减号单独成行,然后往后再缩一格,代表他们都属于这一个数据, ok 吧?对于下面的这个格式,刚才都看了一个中口号,里边包着大口号, 按照 gs 的数据格式写就 ok, 这就是我们亚妙的数组的表示方式。到这呢,亚妙常见的数据格式基本上都给大家看完了,快速回顾一下。首先亚妙有一系列的数据规则, 不用记那么多,就记一个东西,就是我们的属性名冒号,后面与数据之间有一个什么东西空格,别忘了啊,看到时候谁不长记性,把这个东西写错,然后挑半天。另外呢,咱们又介绍了一下, 像字面值啊,对象数据啊,包括数组数据,他们的格式。什么是字面值?其实就是字母照怎么写,数字怎么写,整数、小数、日期空,这些东西都应该怎么写,就是格式问题。 到这里咱们这一节就学完了,那么现在我们已经能够把数据通过压面的形式进行描述了,那这个时候就产生一个新的问题了,我们写数据意义何在呢? 是不是为了最终去读取它?那对于这种亚妙数据的读取该怎么读呢?咱们下一节再讲。

哈喽,大家好,我是软件测试工程师皇宫。接下来我们继续来学习第五章关于 ap new 风装 第一小节数据配置啊,压马儿的一个简介。那么可以说从这一章节开始啊,我们进入到最新的一个啊,高阶的一个内容啊,就是关于这个 aq new 封装的一个啊,测试的一个技术 啊。首先我们看看五杠一啊,数据配置压门的一个简介。首先我们来思考一个问题,像我们以前啊,我们配置这个 compabili 提示我们各个参数呢,都是在代码里面写死的, 比如我们啊,之前定义好的这个一个字典里面要传入这个 k 八六,是吧,还有版本号啊,这个,呃 设备的 uid 啊,还有这个,呃设备的这个,嗯,名称呢?还有这个报名,还有 xdv 的名称啊,也就是还记得吧,就是看吧便利贴的,我们知道这里都是写死的吗?对不对? 好,但是这样的话就有个问题啊,什么问题呢?就是一旦设备和测试的 a p p 发生改变,那么则需要去代码里面一个个的修改, 要么同时根据不同设备不同 app 来维护多套代码,这样显示是不符合我们这个呃自动化测试初衷的啊,不符合规范和 是一种很低跷的行为啊,也就是说,比如说假如后面我要你测试的这个设备啊,名称序列号变了啊,版本变了,然后这个系统 这个名称也变了啊,包括这个,哎,安装包也变了,包名 ictv 的名称都变了,那你只能在这里一个个的去改啊,那这样的话,你大量的去改动的话,那就非常的麻烦,对吧?而且呢很容易出现改错的一些情况 啊,所以这节课我们就想办法怎么去解决这样的一个问题呢?好,我们解决思路,我们可以这样来想, 针对这些可能频繁变动的部分,我们可以将数据和代码分离啊,将数据单独抽离出来放在配置文件里面,代码呢直接从配置文件去读取数据就可以了,这样呢,这样这样来做的话就能够节省 啊,减少这个代码荣誉,提高效率啊,什么意思呢?就比如说我们啊,从这一张开始,我们可以自己搞一个亚马尔文 键,然后把这些这个写死的东西把它放到这个压码文件里面,然后呢我们回头去执行这个代码的时候,直接去读取那个压码文件就可以了,这样的话呢,我们回头就不用在这个代码里面去进行修改,直接去 要么文件里面去进行修改就可以了,就相当于这里搞了个变量吗?对吧?这里都用变量来替换,那么回头的话我就不用在这里去改这些变量了啊,哎,因为变量是一个哎 可变的值,所以我们只需要去把那个变量的文件拿出来改就可以了啊。这就类似于我们 之前微博签单开发工程师的话,他之前写这个 h t m 的标签,他是和这个 c s s 进行分离的啊,哦,不说之前是他们是写在一起的,但是后面的啊,我们的微博开 开发工程师他会,哎,就是感觉这个呃 htm 标签和 cs 写在一起的话,很难进行维护啊。所以啊,现在啊,我们很多做前端开发工程师的,他都是把这个 htm 标签跟这个 cs 的样式把它进行分离,哎,把它进行分离, 那么具体的这个配置数据我们该如何管理呢?哎,那么这一章节我们就哎推荐大家使用这个雅马尔这个文件来管理我们的配置数据啊。好,首先我们看看我们的这个雅马尔的一个概数, 那么什么叫这个 yummer 呢?正如这个 yummer 所表示的这个单词啊,其实为什么叫 y a m l 呢?它是由这些单词的一个缩写啊,全称是 yummer and mark up landwich, 就简称为 y a m。 二啊,幺妹呢,它是一种简洁的非标记语言。那么说到这个非标记语言呢,我们想到了这个之前给大家介绍的这个标记语言,我们有的同学是吧,他喜欢用这个标记语言,这个 markdown, 哎, markdown 来写这个,哎,文档, 对吧?哎,大家应该有同学用过啊,然后呀么呢?哎,他是以数据为中心,使用空白缩进分行,组织数据,从而使得表面更加简洁易读啊,就像这样子,你看,哎,缩进啊,空白,哎,然后分行 啊,然后由于实现简单解析成本很低,所以我们压木耳的特别适合在脚本语言中使用啊。嗯,我们会用到一些现 有的一些语言实现,比如说我们用到 ruby 啊, java 呀, perry, 还有拍成撇与 p, 还有 javascrip 等等。那么我们的这个,嗯, yammer 呢,它是专门用来写配置文件的一个语言啊, 非常简洁和强大啊,远比这个 jason 的这个格式呢更加方便啊。比如说我们接下来我们来拿同一段数据,这个 jason 和这个 yammer 这个分别的表示的一个形式,给大家做一个对比,你看这是阶层的一个数据,你看它是最外面有一个大国号, 然后里面又有大国号,中国号,还有冒号,封号,逗号啊,这样的话啊,当然了啊,这个的话,对于这个老手来讲的话啊,就是对于对于阶层数据这个格式很熟悉的同学,这 也不是很难,但是对于初学学啊,对于零基础的这个小伙伴来讲的话,根本就看不懂,因为它里面的标点符号太多了,大国号也太多了,中国号是吧,让人不知道第一层是什么是吧?哎,很难看啊,看起来有点难受, 但是如果我把这段数据呢,用一个 yama 文件的形式把它写出来,你看它就可以写成这样的形式,你看一看就知道层次分明,对吧?哎,第一集的话,有这个 name, age, supports, 还有这个 children 啊,然后呢,你看第二集,这个 name 和 a 级很明显就是在 sports 的这个里面的啊,然后这个 name a 级 name, a 级是在敲润的这个里面的啊,然后这个 yama 的这个,呃,配置文件它的一个特点就是你看大小显敏感,因为它里面这个区分大大大小 写的啊,哎,该大写地方就大写啊。第二个呢,他使用的缩进表示层级关系啊,也就说你看这个念和 a 级,他就一定是在 suppose 这个里面的啊, 这四个也是在确认的里面的,而且呢,你看啊,他这个冒号哎和这个烫这个中间是有空格的啊,为了让大家看的更清楚,所以我就用一个哎蓝色的这个阴影 啊,告诉大家这个冒号和这个键,还有这个 ag 这个冒号二十五中间都是有空格的啊,大家注意,那么他的这个缩进呢,跟我们这个 passing 代码不一样, 他不允许使用 tab 键,他只允许使用空格。比如说你看到的这个内幕前面这些都是空格啊,他并没有按 tab 键,他不能用 tab。 而且呢,缩进的空格的数目不重要,只要相同层级的元素左侧对齐即可。什么意思?就比如说你看这个内母和 a 级肯定是属于同一级的,这个,哎,同级元素,所以如果内母前面他有三个空格的话, 那么我这个 a 键前面也必须是三个空格,这样的话他们才会对齐啊,要不然他们怎么会对齐啊,对不对?哎,所以这个 yama 的这个数据的这个展现形式要比这个 jason 数据,哎,要啊, 好看的多了啊,非常简洁,所以以后别人问你这个雅马尔这个配置文件的特点就是简单解析成本低,然后呢,这个非常简洁啊,非常简洁,运行呢,哎,就看起来呢,也比这个节省数据呢更加 方便。好,接下来话不多说,我们来看一下怎么来安装和使用这个 yama, yama 的话呢,这里有一个这个下载地址啊,大家可以把这个下载地址呢,可以点进去看一下。然后呢,我们看一下这个 啊,这个上面标记的,看到没有哎,好,标记的呢,里面呢有这个下载的这个,呃,你看三十二位的 window 系统呢,就可以下载这个啊。 现在呢,他最新的版本是五点三点幺的啊,待会呢,你根据你的 python 对应的版本下啊,如果你的 python 是三点六的,就下这个啊,如果三十二位的系统啊,就下载这个啊,如果你的 python 呢,你的电脑是六十四位系统,同时你的 python 是三点六的,那么 就下载这个啊,那么接下来的话呢?哎,我可以检测一下我这个拍摄的这个版本是多少,那么我就下载它就可以了啊,好,那么接下来的话,我们来下载下载下它啊, 好,我们先来看一下我这个拍戏的这个版本是多少,那么我输入这个拍戏, 然后这个,嗯,刚刚危险 看一下三点六点二的,那么很明显,那么我就需要下载这个六十四位的这个三点二三,三点六点二的这个对应的这个五点三啊,那么这里的话,我已经下好了,也就是在我的这个地方, 哎,就这个,看到没有,哎,我已经下好了啊,好,下好了之后,那么接下来呢?哎,我就直接把这个东西呢,大家回头可以找我要啊,哎,我可以把这个东西 发给大家。好,接下来怎么来安装这个东西呢?好,我们看一下我的文档上面是怎么写的啊?啊,首先第一步 啊,我们需要安装这个威尔这个文件啊,那么有的人如果安装这个文件时候,如果出现这样的一个错误的话,那么表示你的电脑安装了多个 pip, 可以选择先卸载掉这个。 哎,卸载到这个螺灯章呢,再次安装即可啊,也可以进入到拍成对应的目录像再次安装 也可以啊,也就是说有的时候你要进入到这个 python 的这个路径上面,然后去进行安装。好,那么接下来我们进入到这个 python 的这个这个,嗯,路径下面去吧,那么也就是说我先可以从这里 啊,我先打开这个这电脑,然后这个地盘, 然后我的这个,嗯,开始的路径在这里,然后就在这个路上面,你看我们这个 pip 这个,呃路径的都在这里,看到没有?我们进入到这个路径里面来。 好,接下来呢,我们 cd 啊,先进入地盘, 然后再 cd。 好,进来了啊,进来之后呢?好,接下来我们看看怎么做啊?好,进来之后,我现在是在这个嗯,拍摄的这个对应的这个目录上面,我们再进行安装一下这个 vr, 哎,先安装一下这个 vr 啊,然后再去安装这个就可以啊,大家注意啊,所以安装之前我们要先安装这个 vr。 好,我们用 pip exteer vr 这个命令来安装 好,大家不要按照错了啊, p i p instead where? 哎,就是这个命令,看到没有 p i p instead where, 好,安装一下, 那么安装成功之后呢,他会出现这样的一个界面啊,就会提醒你啊,说 succeed 里安,安装的这个零点三点六,零点三,六点二啊,然后有个提示,好,你看我这里呢,已经安装成功了啊,安装的这个零点三七点幺了。 好,安装成功之后,那么接下来呢,我们怎么做呢?好,我们看一下啊,接下来的话呢,我们继续按照这个,呃,我写的这个,呃文档往后面看, 接着呢,安装好之后啊,我们就可以通过这个命令啊,去安装我那个啊,刚才下载好的那个文件啊。注意啊,安装之后也是在我进入的这个拍摄的这个录音上面去安装它, 不然话就会出现错误啊,或者说呢,有的人可能觉得,哎,我这个幺妹文件我觉得应该我已经有了呀,那你也可以检测一下,比如说我是这个,哎,拍死你这个 里面我导入一下这个幺妹文件,如果你这个幺妹确实已经安装成功了啊,那么你导入他,他就会,哎,不会报错,就会出现这样的一个现象啊,但是如果你报错了啊,你看我们试一下啊。 回车,哎,说明我这个幺妹已经有了,看到没有?已经有了啊,哎,所以我就不用安装了。那么假如啊,假如大家这这里如果报错了,那你就要 a, 就要干嘛呢?就要去,呃,通过这个命令, 你说通过什么命令呢?通过上面这个命令去把样本文件把它安装一下啊,具体的这个安装过程呢,我也给大家演示一下吧啊,虽然说我已经安装过这个样本了啊,我再来,为了让大家也能安装成功,我再来操作一下啊,也就是, 嗯,我们先把这个刚才下载好的这个这个东西,哎,把这个东西把它放在桌面上去啊,因为这个路径里面有中文,我们一会直接去找他的话,可能会出现报错, 所以我先放在这个桌面上去 啊,放进来了啊, 好,完了之后呢,然后我们就通过命令形式来安装,就是 pip insteer, 然后呢把这个东西拿过来,哎,拖过来就可以了。 好,这个就是这个啊,好,接下来的话呢,哎,把命令写好之后,然后就来这个安装他了就可以了。好,接下来我们来安装一下啊,注意看啊。回车, 你看,呃,只有出现这样的一个提示,所以才表明你这个 yammer 确实是安装成功了啊,安装成功之后啊,那么接了的话呢,你看,这里也提示啊,说安装了这个五点 三点幺的这个 py 幺妹啊,那么刚才我这里也有提示我安装了这个,哎,安,安装了这个,嗯,是 五五点三,哎,五点三点幺的这个幺妹,看到没有?好,这是这一个啊, 好,呃,为什么我这里提示的不一样啊?是因为我之前好像已经安装过一个六点零的,所以他是先卸了先卸了之后,然后又重新给我安装了一个五点三点幺的,看到没有哎,因为我刚才试了一下, 看到没有,当然了,我现在又再次安装了一遍,你看,再次进入 pass 里面,同样的,我再导入这个,哎,我再导入这个 yammer 也是没问题的, 你看,看到没有?哎,好,这就是我们这个 yammer 的这个,嗯,安装的一个过程啊,好,那么最后面还有一个叫做这个 p r yama 的一个官方文档啊,这官方文档大家也可以打开去看一下啊,但是呢,这个 这个网页啊,看起来比较难受对不对?感觉都揉在一起了,而且呢,全部都是英文的啊,在座的如果英文没有达到六级水平的话,那可能完全就是看不懂 啊,不过没关系啊,这个,哎,敏哥啊,早就把这些技术文档的都已经拆分了啊,到时候我都写的都分为这几个几十个文档来给大家都用中文的形式写出来的啊,所以这个, 如果大家一时半会看不懂的话,没关系啊,后期我带大家一起来慢慢的研究好,这是这一个,然后呢?嗯, 接下来的话呢,大家就按照我刚才讲的,把这个幺妹这个哎,先把它下载安装到你的这个电脑上面来啊,这里注意一个细节,就是啊,一定要在这个你当前的这个拍层这个目录上面去使用这个命令安装啊,你看 看到没有,我都是哎,先要进入到这个目录下面才能进行这个安装,而且第一步你要安装这个命令,你才能去安装 这个压门,因为你这个压门的后缀是 w h a 二,所以你要先安装这一步啊,大家注意好,然后这是这一个啊, 好,那么接下来的话呢,我们第一小节呢,我们就讲完了啊,好,更多精彩,我们下期再见,谢谢大家,感谢大家的一个观看,我们下期再见。

首先看一下右边的这一个 ram 文件,打开设置 settings, 在 plugins 这里搜索 emo to properties, 安装并关闭设置右键压没文件, 点击 cumber em in property file, 我们可以看出这个插件的作用是将 em 文件转成 property 文件。

q 八 s 创建部署我们通常可以用命令行方式创建,但是对一些大型的应用用命令行操作太麻烦了,我们可以用编写一个压磨文件来实现,但是如何快速的 编写这个押文文件呢?我们可以用拽乱的这种方式,后面加个参数,拽乱可以直接输出押文文件,他可以搜出全部的这些关键信息。 apa vs 类型 departments 来保副本兽标签选择器容器的镜像,非常方便。

假设你有一个程序运行在机器上,该程序对外提供服务,那么你可能想使用 a 这个端口,也有可能想用 b 这个端口,所以我们不能把这个端口号写死在代码里面。于是我们就用一个文件来标记这个端口, 然后用程序去读这个文件,获得端口号就可以了。文件里面的端口你可以随便改,程序不需要重新编译了,这个文件就是配置文件。然后问题来了,程序该怎么去读这个文件呢? 为了解决这个问题,我们会提前约定好这个文件里面都有哪些字段,怎么样的格式等等。于是便产生了各种各样的配置文件,什么 x、 m、 l, 什么 jason yamo 等等。他们之间的区别无非 就是有些比较全面,有些更简洁。但有个共同点就是每一种配置文件都需要有专门的代码库,懂得去读它,这些代码库往往隐藏在一些框架服务中,以至于你感觉不到它的存在。好还有一个问题, 本地的程序需要配置文件里面的信息,远程的程序有时候也可能想要这些信息, 为了达到这个目的,最简单的做法就是直接把这个配置文件以文本的形式传到远程机器硬盘上,然后远程的机器再读取就可以了。 但这样明显效率低下,于是便有了序列化和反序列化。大概意思就是直接把配置文件序列化成二进自流,然后传给远程程序,远程程序再直接把它反序列化后使用。

大家好,我,我们我们接下来会跳入到 ulob 五的 ulo 点 py 文件中走网络结构,嗯,在走网络结构之前,我先跟大家介绍一下,嗯,我们的 ulo 当中它的五 s 版本呢? vm 文件的配置啊,我们先来跟大家介绍一下啊,这个 nc 代表是类别个数啊。这里我们,呃,我随便挑了几个参数给大家讲解一下,增加一下大家的印象,我们看一下 啊,这里有一,首先我们这里介绍一个字典,这有个字典叫做 backbone 啊,他的维度的参数代表他,嗯,会重复几次,这个地方是说他会重复几次,然后比如说你这里不是说一吗, 你就会重复一次,而如果你这也是三的话,你就会重复三次,你这为九的话,你这个模块就会重复九次。他这个是说我们每一个层,他一个每个字典里每一个键所对应的值是代表一个层。然后, 嗯,比如说你这里,我们我刚为什么跳着讲,是因为说这个 deeps multiply, 他和这个层数是有关的,我们到时候点进代码里面就会发现他这个 deeps multiply, 他和我们这个层数是要进行相乘以后,我们才可以得到我们最后的输出层数。比如说你这里 啊,一乘以零点三三呢,它就等于零点三三啊,这个零点三三很明显不能作为一个层的数量,所以我们待会会解释我们会怎么用,然后比如说我们三乘以零点三呢,是不是还是一层啊?然后九乘 等于零点三三呢?那是不是是三层啊?重复三次,就这个就是深度次数的意思啊,这个 dips motor 代表的是深度次数啊,我们刚刚看完了五 s 配置文件,我们再看一下这个五叉的配置文件,我们做一个对对比,我们看一下五叉的对配置文件当中,它 dips motor 就是一点三三, 他代表的意思是说我们比如说我们这个一乘一点三三,那肯定哥哥不能用,我们这里三乘一点三三的话是三点九九,就是说是四层啊, 这九乘以一点三三的话大概是十二次,嗯,是这个意思,就是说我们每一个版本的呃,五 s 和五叉呀这种它的呃深度次数是不一样的。接下来我们看一下这个 ysport 是怎么用的? ys mod, 比如说我们待会得到是一个六十四 这个特征图,我们看一下他这里面有个地方是说我们这里不是有一个参数,两个参数、三个参数、四个参数吗?第三四个参数是原组,嗯,这个原组中第二个参数。我给大家讲解到之后,我们先讲这个六十四,这个六十四他代表他有六十四个特征图, 我们的 ys multiply 就是说我们这个特征图乘以我们的 ys multiply, 就是说它等于三十二。嗯 啊,这里我们还有我们这里前面这个负一一,我们给大家介绍一下,负一是代表你你要连接哪一层,就是说如果说你这写负一的话,他是说连你上一层的输入结果啊, 然后我们看见,嗯,这里还有一些啊,这里 from 就是说这它是有个注视的,我们用注视也跟大家解释一下, from 就是说你来自 在哪里?我们这里复印,来来来,上一次 number 就是说你重复几次?我们这里 number 是说重复一次也有,重复三次也有,重复九次也有,但是在重复之前我们会乘上这个 dips model, 刚刚跟大家解释过这个 model 呢,它是说我们 我们层的名字,到时候我们可以通过这个名字来指定啊,来指定他调用的是哪一个层,哪一层。然后这个我看一下啊, 还有一个叫做,嗯,二克斯这个参数,他是说我们第一个是特征图个数,我们特尔特征图个数要乘上这个 ysmot。 然后我们 啊这个还有这个他跟这个倒数第二个倒数第一个数字的话是说我们的,嗯,应该是 channel, 就是说我们,嗯,这个一共是有多少个通道呢?最后这个三是代表通道,大家后面还看见有一些康复层啊,他最后三后面就是说我们通道数后面还有一个呃 数数字,它这个是代表卷机盒的个数,它这个比如说它这个通道数旁边还有个东西是代表卷机盒的个数, 大家先理解一下就好,我们在用到的时候,大家用到的时候记记下来的话印象会更加深刻。这个就是我们优乐 v 五 s 的 yml 加速的解析,谢谢大家观看。
![[WebUI自动化框架封装]_2_Yaml数据驱动](https://p9-pc-sign.douyinpic.com/tos-cn-v-22574f/oo2KKtghbCIcxQMaBnNlAEBoqDADe0U0UVbQeQ~tplv-dy-resize-origshort-autoq-75:330.jpeg?lk3s=138a59ce&x-expires=2099084400&x-signature=JZWfZiIui2YUGArqwGgK0lhcMn4%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=cover&biz_tag=pcweb_cover&l=202607110740341CD8A799155BFD16D664)
然后我们第二个小节的内容啊,我们的 d d t 啊,数据驱动啊,数据驱动啊,那么数据驱动的话也是来自于我们的 r f 啊,所以说也是来自我们的 r f d d t 啊,那么这个 d d t 的话啊,在 unit test 里面啊,还有专门的一个装饰机的 d d t 啊,那么在 python 里面是没有的啊。啊,那么这个地方把这些东西呢复制过来啊,把这些东西复制过来, 整个 model 复制 啊,那么复转之后啊,你可以看一下这个里面有没有什么跟目录相关的目录啊,这个导弹好像应该是没有啊。啊,有一个,有一个这个东西啊,那么 假如说啊,因为我这边因为是上课嘛,所以说为了给你们看到一个过程东西,所以说经常要改这个目录啊,现在只有一条啊,比较好改,那多的话肯定不好改,那么不好改的话怎么办呢?啊?你们可以这样子啊,把这个就是说这个东西复制复制一下啊,就是这个东西是要改的把这个,呃 啊,这个这个东西是要改了,对吧?这个东西变得是这一块啊,那么点中这个目录 ctrl shift 加 r 啊, 这是我们的 replace 的这个快捷键,扛扛就要卸了甲啊,那么在这个地方啊,把它复制一下啊,把这个粘贴一下,把这个地方改成你要批量替换的啊,那么这就是说不管你这里面这个木头下压,只要这一层木头他会去给你替换啊,你看到没有,他只 会在替替换这一层目录里面的东西,他不会替换多了,他不会把上面的都给你改了啊,他只会替换这一个目录下面的东西啊,就可以说比较快速的去调整这个目录啊。之前也想过很多方法,这我觉得目前来讲这个方法是比较快捷的啊, 没有什么大码,也没什么大的一个变动。好,那么在这个里面啊,我们首先啊要写一个 detadrawa 啊,要写一个 detagradata drawa 啊,也就是说我们的数据一个 用驱动文件啊,就是专门去读数据的。呃那么这里的话我们就写个样子啊,因为我们用 来自动画这一块啊,我是不太喜欢用 excel 的啊。 excel 的话因为 excel 它的缺点是它读数据比较麻烦 啊,他读数据的过程比较麻烦啊,然后正好我又要自动化在这一块我又不太喜欢用 excel 的那个结构啊,所以干脆我只是为了做一个数据举动的话我没必要去选择 excel 就用个样子 啊,要么的话核心就是说可以读取一些数据啊。那么这句话我们先定义一下啊,他读取数据的一个方法。 sodium 要么可图性没有,要么的可图性没有,拍子没有一个赛好好啊,这个有一说一啊,要么的那个。呃那个文件结构如果你不熟的话对一些新手不太好啊,你不要小看这个新手的门槛啊。当年作为一个新兵蛋子的时候 好啊,什么都不懂啊。 python 不懂的时候你跟他讲一样的啊,他一头雾水 啊。这个就是啊,开始啊啊 incoding 等于啊,但是现在大家的这个水平上来了啊,这个东西应该没什么问题啊。那是在很久很久以前,我们那时候就感觉稍微难一点的东西就不行啊。 呃家长的话有很多方式啊,那么就直接用我们的 forel 的啊,然后再把我们家长好的做数据,就这回来就好了啊。那么这个地方可以写个测试文件啊啊那么 content 啊,要制定一个文本啊 啊那么这里的话我们要给他一个数据或专门给他给个数据文件啊,一个目录啊,那么在这个地方啊就写一个样本文件 啊这个样本文件。我们在讲 python 的时候已经给大家详细讲了它的语法了啊如果有同学不知道的啊你们就去 python 的里面去看一下,有个那个数据文件类型的操作的啊 啊那么取出取出名叫这个啊。呃那么我们这个是登录啊,我们现在现在是说我们要用在我们登录用品上, 用在这个用地上面,对吧?啊那么这个用地上面的话啊我们的数据主要是为了去把这个用户的账户密 啊进行一个数据驱动啊,也就是说我可能说我要准备多组用户的账户密码啊,那么在样目里面啊,每一条用力啊,我们交易组数据啊,这是一个 list 啊这是一个 list 啊,这就是我们一条用力了啊 啊这第一条。然后如果说你想让他有多条啊,就这样子啊,这就是一条第一条用率啊,第二条用率,第三条用率啊,就是一条一条用里面搭配的这个多组数据,这第一组数据 啊,第二组数据第三组数据啊,你可以把什么断言信息,比如说一个是 fact 可以写到这里面来,对吧?都随你啊,反正就这么加。然后就是说每每一组数据他们的格式都是啊,结构都是一样的,只是数据不一样啊,数据的话 是吧,你可以随便写一点啊,那么我这里的话就啊是吧先写一点啊, ok, 就代表上数据后面两个数肯定他是登录不了的 啊,后面他肯定登录掉了,然后啊,我们接着接着来写啊,啊,那么我们这里压模文啊,这个是最简单的压模文件,对吧?在这个里面啊,我们就把它这个东西写过来啊,测试一下,看能不能读取这个数据 啊,那么我们的这个呃,驱动文件在这里,数据文件在这里,那么我们读的话要注意一下,可以找上相对路径啊,相对路径啊,点点杠啊,你看你写的时候他是有有有提示的啊,有提示就是对的啊, ok, 老师说你可以测试一下, ok, 读错 读出来的话是这样的一个结构对吧?啊?就是一个字典,两个字典,三个字典,看到没有啊?那也就是说啊,我们就可以说循环的把这三组数据读出来,然后再去再都用,你们去用 啊,然后恰好我们的这个 patrice 的啊,它就有一个这样的解析的机制啊,我们这里念讲啊, patrice 的时候有有讲啊,它有个呃,叫做 parents, parent pass, 对吧? 啊,那么在这个地方啊,我们可以啊,把它复制一下啊,再做一个边框 啊,我们在这个地方啊,我们拍 ctrl 插座画 mark enter, 对吧?那么在这个地方啊,首先第一个形成的名字啊,这个形成的名字随便定,你叫什么名字都可以。然后右边就是你要传进来的数据啊,那么就是 memory driver 啊,把这个东西导进来,点到这样,然后这个地方啊,也同样的啊,你就要把这个路径写对了,要把这个路径写对了啊,那么这个时候啊,大家注意啊, 呃,你写在这个里面的时候啊,他这个路径是跟你什么呢?这个相对路径啊,他是跟你这个运行文件有关系的,也就是说你如果是从 从这个 made run 这个文件开始运行的时候,你的这个找数据的那个路径的出发点就是它啊,而不是这个 啊,也就是说,那么如果说我是相对于 may run 去找这个 user get 样本的时候,那么就是点杠啊,英文你可以看一下这个 may run, 对吧?它是在根目录下来,就是点杠啊,注意啊,这个地方,这个地方一定要注意一下 啊。 ok, 好作用啊,搞好之后啊,我们这里再把这个行参啊给他传进来 啊,那么这个形态就是这个东西啊,它传下来就是这个 list 啊,不是这个 list, 说错,它常见是什么呢?它这个 parameter 其实就是说每每执行一次啊,就读取一组啊,你有多组它就会它,你有多少组,它这个用力就循环读,呃,循环执行几次 啊?循环执行指示, ok, 那么在这个地方我们就可以什么呢?获取到它的 username 啊? username 等于 data, 对吧? ct 的 kimi 去获取 啊,获取到它的密码啊,连接它根据 kimi 去获取 啊,还有剩下的什么预期预期结果呀,什么其他的参数都可以啊,一样的啊,就要往后面,往往后面加就行了,对吧?啊啊,包括这个 u i l u l u v v 是统一的,我这个地方还没有去做一个优化啊,就就放这里,那我们现在只是把我们的 user name 啊,来做一个参数化啊,那么这个东西就是我们最简单的一个参数化啊,那么这个时候我们的用力就会执行三次 啊,我让一下, 第一次 好记完,等五秒钟结束,然后第二次 执行完啊,然后这个账号不存在, but 第三次 ok 啊,它就只需要啊写一条用力搭配单组数据,它就可以执行参字,这就是我们讲的参数化啊,也是讲的这种最简单的数据驱动啊, 这是我们数据驱动最基本的含义啊,最基本的意义啊,当然复杂数据驱动啊,他甚至说直接就是像我们后面讲的结合式的话,直接用它构造了他整个用力的所有的数据啊,发现其他的东西啊,会更加复杂。 但是我们最简单的其实就是把里面的一些可替代数据啊,用一个这样的文件啊,分组啊,你比如说有时候你想做这种 啊,特殊字符的娇艳,长度的娇艳啊,那么他们里面你要输入的都是用户名密码吗?对吧?这些东西是不变的,那么变的只是要直,那么你就没必要去把这个脚尾啊,反复的去写,直接改这各种文件可以了 啊,这就是我们的一个数据驱动的一个最基本最朴素的含义啊,后面都是他的一个演化,后面我们可能说那个结合自动化啊,这个样文件写的特别特别复杂, 对吧?里面写了一堆的参数啊,其实也是只是在他身上做了一些增加,增加完之后可能说会有铅套啊,可能会历史的,但是他字典字典他历史的,对吧?套来套去,然后就把它读 读出来之后做一个解析啊,解析完了其实也是一样的啊,本质上他的执行逻辑,这个啊,所以你搞清这个东西之后后面东西啊你才会说啊,理解啊,做一个理解有一个深度的理解。 好,然后这是我们的数据驱动啊,数据驱动的话,呃在我们这个地方啊也给大家讲了啊,就是说呃就是在整个车速过程中啊你所有的数据啊进行提取保存管理,提升框提升一个框架的口碑 option 啊,你可以用 excel 也可以用 yama 也可以用接送也可以用 pass 也可以啊。 啊场景就是举了一个简单场景啊,要么的话我们刚才也讲了对吧,大家可以在这个 party 变成第七小节里面啊进行一个复习啊,这里面有详细的讲解,这里的话我们只是简单讲一下图曲啊,那么这个点哈就是我们的 list 啊, list 标签,这个就是冒号,就是我们的 deck 的标签后面注意一加空格啊,一定要加空格,这是它的格式要求啊,那么你可以看到等价于是这个东西啊,那么第三个啊,呃 啊这这是我们的顺驱动啊,顺驱动的话我们还可以什么呢?嗯把它的这个 呃断言数据对吧?啊?我们也可以加进来啊,断言数据也可以加进来,也可以直接从我们的亚某联名读取 啊,一个加到加到我们锻炼锻炼里面去啊。啊这里举这个例子,嗯是用我们的这个弦等啊,这个例子写的不太不太合适啊,但是 也是可以完成断言的啊,但实际上啊,你是可以直接加参数的,比如说我刚给大家演示了一下啊,有问题你们可以说没听懂,可以说啊,可以直接在这里面加参数, 加你希望断银的一个东西,对吧?啊?那么在代码逻辑这里处理,对吧?比如说你是 title 啊,你登录成功之后有个 title 的变化,对吧?啊?那么这里面写一个 title 值,比如说你 title 可能说有的地方你登录成功之后它就是一个 用户的名字吧?啊?当然这个地方他没有啊,他应该就是有一个这样的 演示站点什么的,对吧?啊?就包含了这个名字,然后我们到时候啊拿他这个这个纸做一个对比就可以了啊,这是断演啊,也没有什么,其实也没什么很多的东西啊,这从这里读取了之后 加到这个逻辑里面来,是吧?把这个数据提取出来之后,后面你想怎么用就怎么用,对吧?本质上就这样的。