粉丝923获赞2419
大家好,本期我们讲一下 ini 文件的操作。 ini 文件经常在我们开发中,当代码的配置文件, 它可以将我们配置数据和代码分离,从一定程度上能提高我们代码的灵活性。我们先来看一下这个文件长什么样子, 它是分很多节点,像 using four 和 data 就是一个节点,节点下面它是以剑指队的形式来存放数据, 我们现在来操作一下它。想操作这个文件,我们必须导入一个模块, config passer, 使用的话我们先创建创建一个对象, config 等于 config pass, 点 config passer, 然后我们调用一下这个对象的 red 方法, settings 点 i n i, 这样的话这个文件我们就读取出来了。接下来我们来模拟一个登录的操作吧。 def logging, 我们先准备一个字典 data data, 我们写一个参数 silent, 那就是客户端设备信息,我们来个 windows。 接下来我们想读取一下 detains 文件里面的 user name 和 password, 我们可以这么做, config 点 items, 然后将 user info 放进去。 red info 的话就是我们一个节点嘛,要获取这个节点下面的所有的兼职队,我们来打印一下,看一下什么东西。我们现在调用一下, 发现得到一个列表,列表的每个元素是一个元组,元组就是对应的剑指队, you the name ask what 这时候我们可以直接把刚才的信息合并到字典,我们可以用杠,等于这是一个字典的更新操作符,把它直接粘进去, 这样的话我们 data 字典里又多了两对剑指队,一个是这个,一个是这个,打印一下 并进去了,接下来我们直接用打印来模拟一下登录吧。 print 账号是 data, 我们去 youtube name, 密码是 password, 然后我们打印一个,登录成功吧。 运行一下程序,账号是八月,密码是一二三四五六七八九。登录成功,但密码我们不应该以铭文的形式呈现。 我们可以调用一个 hash sleep, 用密码做一个加加密 hash sleep 点 m d 五, 用一个 m d 五来接收 m d 五点 update, 我们将 data us word 传进去, 这样的话它就相当于对我们的密码做一个 m d 五的加密。我们想取它的加密,我们可以用 m d 五点 text gigs 从来没有念念过这个英文,直接复制,复制给字典的 password 键, 这样我们就完成一个加密。运行一下 the dreams marks be 自负创 必须被编码,对,我们这里必须要用自己的形式,我们可以编个码,再输出一下 账号是八月,密码是什么?什么什么有加过密的登录成功,本期的案例就到这里,谢谢大家。
好,在上一讲中呢,咱们可以把咱们的用力呢就执行完,执行完之后呢可以生成这个测试报告啊。嗯,其实到现在的话,我们基本的一个测试框架啊就已经有了啊,我们这边可以,比如说这个是锐泡的这个是内 那个测试报告啊。那现在的话就是说我们还有一个问题,咱们在做测试的时候有些功能他有异常场景,比如说,嗯,在这边做的这个发题 这个操作,那么发帖的话他有异常场景,比如说这个异常场景是你这个脱困值错误的时候,或者胎头啊,胎数次数太少的时候,或太部内容比较小的时候,或者这个康定的内容比较少的时候, 那你这种异常场景的话就说这个数据不一样,他的结果会不一样。那这个的话就是我们说的这个数据驱动啊,数据驱动,比如说在这边呢,我再建一个文件啊,比如说我再建一个,再建一个拍摄文件,这个的话是 那么这个文件的话我们去测试,比如说测试这个安啊,就是说 异常场景啊,就是不是正常的,对吧?啊?不是正常场景, i love you。 好,那么在 这边的话我要去测一下测试,测试这个发铁的异常场景。 那发型异常场景的话,我可以先把这个测试数据先定义出来,比如说这个泰特迪塔, 那这个测试数据的话,根据这个场景我们可以把它放到一个列表里边,那每种场景呢?他对应的是一条数据啊,比如说在这边呢,我可以把上面这个,比如说这是一种场景,那就把它 发帖的这个数据呢放在这个里边啊,这边的话我为了格式化,我可以把它写到一行,比如说在这边我们去发帖啊, 这边的话,我假如说我第一种场景呢,我把这个头啃为空啊,第二个场景的话,我可我可能给他一个头啃值啊, 好,我们放在一个列表里面,那么每条数据呢?我们可以用这个逗号隔开。好,那这边的话你可能有不同的数据,你可以放在不同的 啊,就是不同的场景你可以有不同的数据,那你就给他定一不同的数据,比如说这个呢,有可能是这个胎头为空,那这个的话可能是太不为空,也有可能是一个康腾头为空,那不同的数据呢,我们可以放在这里边啊,那下边的话就是看一下怎么去 做这个数据驱动在这里边呢? prt 内置一个参数化的功能啊,可以看一下,这个是他的一个 地址啊,我把这个地址呢先放到这个代码里边啊,可以去参考。那在这里边呢,我们可以看到,就是说呢你有不同的数据,比如说这边给我们举一个例子,这是两个数据啊,两个数 数据,那么两个数据同样的也是放在这个。呃,放在一个列表里边啊,那这边的话就是我们在我们的测试用力里边呢,只需要给他加上一个,还是原来的测试方法啊,只需要给他加一个参数,那这个参数的话大家可以看一下,比如说 这个药力里边是一个 ab, 然后一个赛的,那么这个参数刚好跟上边这个就是说这个 pyt 色啊,这个装饰器里边的这个参数呢保持一致, 那后边呢就是再传一个泰瑟迪塔,那么泰瑟迪塔就是这个列表,那所以说我们用在我们的这个数据驱动里面呢,你可以直接按照他这种写法,第一步 音炮的 pyts 啊,第二步还是定义我们原来的测试方法,比如说 coplat, 那在这边呢我们可以去 用这个数据啊,用这个数据的时候呢,我们只需要加上一个艾特 pyts, 在这个 pyts 二点呢我们可以用这个 mac, 然后呢是这个 胎儿们,那在这边的话,我们可以就是说呢也把这个胎测低,他呢都为参数传过来,传过来。然后呢前面呢需要给他再定义一个参数,这个参数的话他的固定格式是 用一个字符串啊,就像他在这边字符串,那这个字符串的话你可以给他起名字。比如说在这边的话,他其实就是说呢,他会在执行的时候呢,他会把这边的每一条数据呢给我们抽离出来啊, 传给这个参数,那所以说我可以给他起个名字,比如说这个就是调皮和低碳。那下边的话我们要把这个特别低碳呢传给我们的执行 执行参数啊,就是执行测距用力的,这个测距用力的啊防审这个数据,那下边的话我们只需要,比如说啊,我们可以打印一下,比如说这个台词啊, 第一趟可以看一下,那现在我们再去执行,比如说这边呢他是三条数据,我们期望运行的时候呢,他给我生成三条测试用力啊,那我们来运行一下,就是 pyt f 上,后边呢跟上这个 tyst 下边的 tst 看,然后我们跟上一个杠 s 参数,好直行,然后大家可以看到这边的话,他生成了三条数据, 里边呢,他把每一条数据呢?哎,这边我们应该是打印的是这个头皮和地毯啊,他会把里边的每一条数据呢给我们打印出来啊,那有了这个数据之后呢,我们下边就可以,比如说再去发动 请求,那发生请求的时候你还是 inpot 追快速啊,那在这里边呢,那这个其实就是追快速点 pose pose 的时候,这个 ul, 对吧? ul 其实还是原来的 ul 啊,你比如说 啊这个 ul 这个地址啊,好,那么这个地址的话我们可以啊,我这边的话为了方便,就是直接从 这个 api 文档里边呢在复制过来啊,其实我们前面都已经定义好了,对吧?你也可以去调用这个参,调用他里边的公共的函数啊。好,那这边的话就是 这个是桃皮,然后呢直接把这个数据传过来,比如说这个桃皮个第一套啊传过来,然后你可以看一下,比如说啊颜色这边的话, 我们第一步先把这个 is 就是说这个返回的结果打印出来,比如说 gs 纹,可以看一下它的一个效果。 好,我们可以看到啊,不是说不同的数据啊,他传传过来的数据,这是他的一个结果,现在就有了。好,那么这个,呃,这个就是说呢,我们去做这个数据驱动, 多数于驱动呢啊,主要是有这个数据,然后这边呢主要是用 pyts 内置的这个参数化这个功能啊,你要把这个数据呢传过来,传上之后呢给他再起 每一个数据呢?带给他起一个名称啊,起这样的一个名称就 ok 了。好,那这个的话就是 ps 他的一个参数话的一个基本使用,那么下边的话,就你参数话进来之后呢?你怎么去对每一条数据添加断言啊?这是我们下一讲要讲的内容。
好,我们在上一讲呢,讲了这个添加断点的方法,其实对这个单个接口测试呢,用这种方式就可以去测了啊,比如说你发动一个请求,他是盖的请求还是铺测请求,那你就调这个快速的盖的火清铺测方法就可以了。 呃,后边呢?他有哪些地方?就你要对一些关键字段去添加这个断言,那添加断言就是你对条关键字段呢?啊?你看一下怎么去添加,怎么方便,对吧?去添 添加一下就可以了。那下边的话跟大家再说另外一种场景,这是单个接口,所有的单个接口你都可以用这种方式去做,但另外一个另外一个场景大家看一下,在这边比如说我要去创建话题,创建话题的话,我们是铺测请求,可以发动一个铺测请求去创建。但是 诗呢?比如说这个编辑主题,编辑主题的时候还要这个,比如说这个主题详情,那大家在测这些借口的时候,比如说测主题详情,测题详情的时候呢,我必须要有一个呃,脱贫 id, 就是说这个话题的 id。 那在做这个接口测试的时候咱们就需要注意了啊,因为你必须要有一个先创建一个话题,那这个的话就说咱们在测的时候呢,就这个 比较强的一个关联性,就是你用话题之后呢,你才能去看到这个话题的详情,对吧?啊?那比如说我去编辑话题,编辑话题的时候呢,你也要有一个 话题啊,所以这边的话他有一个依赖条件啊,那这这个依赖条件怎么去解决啊?嗯,在咱们写代码的时候呢,如果有依赖我们可以做一层缝装啊,比如说我们在这边可以建 一个业务,业务模块,就是我们自定义的一些业务模块啊,业务模块,比如说我们建一个 biss 这样的一个目录啊,那这个目录的话就是主要是存放我们的业务代码,给我们的测试用力呢啊? 单独的存放,存放 业务代码。好,那么业务代码的话我们可以放在这边,比如说我们常用的业务代码我可以加一个文件, 比如这个文件的话我可以加成,比如说靠卖啊,这是常的业务代码。好,我们创建这个话题,对吧?创建话题我就可以在这边的 df 定一个公共的 创建话题的方法,比如快的淘比克。好在这个创建话题里边呢,我们把这个创建话题业务逻辑呢复制过来,比如说在咱们刚才演示的时候,主要是这一块,对吧?你把这个内容呢直接复制过来啊。好, 这边呢我们同样的需要去引入这个锐筷子啊,引入这个文件,那我们创建这个话题呢啊,因为这个话题大家看一下,在这里边 还有一个头很直,对吧?啊?这个头很直呢,你可能需要不同的用户去创建,所以我们在这边呢,你可以啊,比如说这个桃皮 id, 对吧?你可以把这个参数呢啊,把这个数据呢对一个啊,基本的参数化,比如说在这边呢, 我可以把这个脱皮和脱皮和堆,他呢作为一个变量啊,就你别人调用的时候呢,你给我传这个变量,那这边的话我就不需要了啊,这边他就是这个变量啊, 抽离出来,抽离出来之后呢,我可以把这个结果返回出去啊,因为你别人要调用吗?我也不知道别人调用这个函数的目的是干什么,他创建一个话题,对吧?那创建成功呢?我就把这个整个所有的 所有的这个响应信息传给他,比如说他要去看他的状态吗?或者说他要看他的结果,他拿到这个结果,拿到这个返回纸,他自己去获取就 ok 了。 好,那这是这个,那下面的话我们可以再写一个,比如说这是测试这个主题,首页我们已经写好了,我们再写一个用力,比如说 past, clol, 桃皮,好,我们来用这个。呃,那这个的话,咱们就可以去 直接去调用啊,调用这个函数,那调用函数的话,这个是我们自己自定义的,所以说在这边呢,我们因泡他进来,因泡他,比如说 biss 点 comen, 我给他起一个别名,比如说 ceo m n 啊 come, 那这样的话我们要去创建一个话题,其实我们已经对应好了,对吧?在这边的话,这边的话,有时候因为我们创建话题呢,在这边我们需要一个话题的一个数据,对吧?比如说桃皮和 dota, 我们自己先写, 大家可我可以先偷下懒把这个呢复制过来,复制过来啊,好,那么复制过来之后呢,在这边呢,去写这个代码的时候呢,我就直接去靠门 点快的 top, 把这个 top 的第一塔这个字段呢传过来,传过来之后呢,他会根据这个字段呢去创建一个话题。 好,创业话题之后呢,我拿到这个结果啊,因为这块的 top 呢,他已经把这个结果给我返回回来了啊,所以说我在这边拿到这个结果之后呢,我根据自己的场景去 断言,比如说我要去阿兹尔特,他的一个状态吧,应该等于二百,那就阿兹尔特二百。如果我要去判断,比如说这边我也可以打印一下啊,比如说先盘他二点啊,杰斯文, 看一下他的结果啊,看一下他的结果。在这边的话,就是我们去运行的时候还是用这个 pst, pst 的执行这个 tiss kiss。 嗯,在这边大家可以发现,如果我我写在 代码比较多的时候,比如说一个用力,一个文件里面可能写了好多个用力,那不能用力呢,我要去单个去调试,调试的话我可以这样,他是逃避冒号,两个两个冒号,然后呢直接跟上这个名称, 这个的话他可以去调调试单个啊,就说默认的话,他会把所有的文件都会给我们运行,现在只需要运行一个就可以了,这还加个更 s, 看一下他的打印信息,哎,我们可以看到这边他是 fxx 处特别有 id, 对吧?那所以说,比如说这个淘气点,我们可能会,嗯,对他去,因为他的访问题比较少。我们去那个验证的时候,比如说 第一个对他的 xxx 自断去验证,比如说那就是阿斯特阿典,杰斯文点啊,这边的话就是他的 中括号,他的一个四个赛字,知道吧?比如说他是除,那我就等于除啊。那还有一个,比如说我们对这个脱皮 id 去验证 这个特别 id 呢,我们会发现我每次执行的时候他都会创建一个新的特别 id, 那所以我验证这个制作的时候只需要验证这两个结果,这两个结果呢啊不一样就行了。那所以说在这边呢,我可以去 啊,再让他创建一个话题,比如说啊二啊,用同样的数据再去创建一个话题,比如说 还是用这个淘皮 id, 他创业好之后呢,我只需要验证第一个 id 和第二个 id 不一样,所以说这边的话就阿斯特特二点杰粉啊,这边是淘到一个淘皮 id, 那么不等于啊不等于不等于的话,你可以用一个惊叹号,等于啊,就这个表示不等于二二点解散啊,然后呢再去对他的一个特批 id 去进行验证。好,那下面的话我们就可以这个,其实这个测试用力呢啊,这样已经定音好了,那我们可以去 添加啊,大家可以看到同样也进行通过啊啊,那如果你比如说你给他来个等于啊等于的话,他这边就会报错,因为两次 验证不一样,对吧?可以看一下这边是不是两个指头会自动给我们显示出来两个指不相等啊?好,那这里这边的话就是说你不 不等于,你可以前面也可以加个闹腾,闹腾也是表示不等于啊,这个两两种方式,一种是加惊叹号,一种是加闹腾啊,这是两种断言方式。好,那 啊这个的话就是说我们简单总结一下啊,我们在做这个请求的时候呢,我们把这个请求呢,因为考虑到这个请求呢,在后边这个接口里边呢,他有依赖,所以说呢,可以把它单独的抽离出来啊,抽离出来 处理出来,封装成一个函数啊,我们只需要用到的时候就用这个函数就可以了。
那么如何去结合我们的这个排列式啊?结合我们的这个阿鲁排列式,对吧? 然后就生成我们的怎么样阿鲁级别的测试报告,对,阿鲁测试报告啊, 好,那么这个也是在我们 pats 里面的一个怎么样?最重要的一个内容,对吧? ok, 那么一般情况下啊,首先第一步,那么像这种阿鲁级别的报告的话,那么他不像我们的这个 pats 点 ad 妙,对不对?你看像这种报告啊,很简单,直接用一个命令,对吧? 你直接到我们这一个拍 tex 的点,哈哈,稳定里面加上一个秘密,对吧?你就可以了,对不对?就给 ok 了吧,就实现了吧,那么像这种的话,那么他就比较复,稍微的比较复杂一点 说,第一步你需要到这个官网上去下载,去下载啊,去下载我们的这一个阿鲁啊, ok, 需要到官网上去下去下载啊,那官网的话,我们给大家看一下吧。 ok, 这下的官网吧,那么,呃,这个是二点一四的版本啊,那么你在这个地方去下载他的阿乐阿鲁的包,对不对?那么就下载这个 z 吧包就可以了,对吧?他最新的是二点一四吧, 像我的本地的话,我下载的,我看一下啊,我本地所下载的是二点一三点七的,对不对?这是我以前下载的啊,对不对?你看就就是个 vip 包,对不对? 这个包把它解压出来,解解,解压出来的话,它里面有四个文件夹,对吧? ok 吗?就是这这个啊,解压出来之后,那么你需要把这个闭目复制一下,你需要把这个闭目啊复制一下,放在哪里呢? 嗯,然后下载之后,那么放到这个一盘下,或者第一盘下边放到什么呢? 没有中文的路径下啊,不要放在有中文的路线啊,那么放到这个没有中文的路下,然后把 这个闭目录,对不对?配置到我们这个环境电量的 pass 里面,要配置到我们环境的 pass 里面啊,我给这个官网的地址,我哭一下,好吧,那么 一定要把它放到怕的怕死路线嘛,如果说你没有放到这个木下的话,那么他是不认识你的这个阿鲁达,那么放完之后你就可以在这个地方,呃,在我们 c m d 里面啊, 你把它放到我们的 pass 目的下之后,那么你就可以去怎么样输入我们这一个阿鲁杠杠 vs, 对吧?你就能够看到阿鲁的版本,你看对不对?就能看到阿鲁的版本啊,其实他的这个地方怎么样?他这个阿鲁他就是运行的什么? 他就是运行的我们刚刚这个闭目下的文件,这个闭目下,对吧?他就是运,就会显得这个文件啊,对不对?这边的文件啊, 所以说如果你在这个地方你没有配置的话,他这是找不到了,对不对? ok 啊,那么就算是你配置了,对吧? ok, 这个时候啊,你在这个拍岔母里面,那么你用这个 r 他可能是不行的, 好,哎,打破了啊,他可能是无法显示的啊,所以说那么到你配置的时候,你需要把你的拍上面重启一下, ok, 这个地方注意一下啊,要重启拍拍上面啊, 好,那么重启我们的拍岔母之后,对吧?那么你还去验证一下啊,这样的,然后通过这个 通过他的验证啊,好, 那么如果说你在这段你没有去这个验证的话,那么他肯定用不了啊, ok, 那么验证的时候,对吧? 你还需要去安装这一个阿鲁杠,怎么样?阿鲁杠趴在这,对吧?我们前面是不是已经安装过了?在这个地方对不对?我们前面一次性的就把它安装了吧, ok, 那么这个地方全部都安装完,完成之后,对吧?安装完成之后,接下来我们就来开这个直行了啊, 执行命令,好,那么首先第一步啊,他不能够直接去生成阿鲁的报告,他需要怎么做呢?他需要先先去生成这个临时的 节省文件的报告,临时的啊,节省文件的报告啊,那么怎么做呢?这样做直接在后面加命令就可以了,直接加命令啊,比如说我们加这个杠杠什么呢?阿鲁 dir, 对吧?表示你要生成的这个阿鲁报告的路径,对不对?当然啊, 我们这个地方是临时文件,对吧?是你的这个临时的接待报告啊,那么我们生存到当前目录下的特本目录啊,我们现在还没有特本目录,我们的新建一个啊, 对吧?先生成这种铁粉沐浴露对不对?我给我们试一下啊, 看是不是直接就生成这种什么这种阶层格式的,对吧?阶层格式的这种临时文件啊,临时文件,那么这是第一步,这第一步啊,直接在我们这里面加上这个面积即可,对吧?然后第二步的话, 那么在我们这个地方啊,当你执行完我们的这一个用力之后,对不对?他就会生成我们的临时文件,对吧?那么生成了临时文件之后啊, ok, 我们还要再加上,呃,刚刚这个命令,我们应该,呃保存下吧,保存下啊, 这第一步吧,第二步啊, 哎, 生成我们的阿鲁报告是吧?那么第二步他是怎么生成的呢?他是通过这个临时的接受文件啊,临时的接受文件去生成我们的阿鲁报告。 好,那么他会,他虽然是执行一个这个温的死的命运啊,叫系统命令啊,五 s 给 c 斯特啊, ok, 就是执行我们这个系统命令,好吧,那么执行什么系统命令呢?我们看一下啊, os 点 sister 对吧?阿鲁,这个杰伦瑞特表示,怎么样构建我们的阿鲁报报告,对不对?那么怎么构建呢?那么他是通过我们这个临时目录下面的这些杰森报 这种,接着我们就去这构建,对不对?那么构建了之后你需要输出到哪里干欧,对吧? output 对不对?输出到我们的这一个 repute 梦想,对吧?新建一个啊 reputes, 好让他深知到我们的 repute 这个梦想。对,当前目目的 reputs 梦想。 ok, 我们看一下啊,看看他能不能成功,好吧, 他还在执行,执行完成之后他就会构建,等那一个阿鲁的报告,对不对?好,这个地方报错了啊, 他说这个路径不对, ok, 这个路径不对吧?对, 这个地方,他说这个路径不对,对不对? ok, 这个地方这个路径。当前目录下。 不要我加这个东西吗?把它去掉,好吧,直接把它去掉啊,就不加这个点了,好吧。 unitas 的和 path 的能互用吗?比如说现在字的话讲,我们是 unitas 的方式写的,现在在这个基础上能用 pats 了吗?可以啊,稍微改一改就 ok 了。 ok, 嗯,这个 lip 的,他说这个报告已经存在了,哎,这个木是咋回事啊? 需要增加一个口令,对吧? ok, 那增加口令的话,我们就给他增加口令,好吧?增加口令啊,这边清除的意思就说他如果有,已经有的话,那就会把那个原来那些报告清除掉啊。 ok, 他这个地方怎么样?他说报告已经成功的构建了,对不对?我给到了我们这个绿布的 s 目的吧,那么这个目前你看到是不是多了很多文件,对吧?那么我们来打开这个音 dex 的这个文件啊,那么这就是他生的一个 r 五级别的报告,对吧? ok, 那你看到这个就是我们怎么样?刚刚所生成的阿露级别的报告,对不对?当然啊,这个生成我们阿露级别的报告其实只是第一步,只是第一步啊, 生成之后我们可能需要做什么?需要做更多的一些定制啊。 ok, 那么接下来做什么呢?就是关于我们这个阿璐级别包括的定制啊, 那么这个定制的话,相对来说啊,是他的内容很多,对吧?他相对来说啊,他里面的一些内容的话,那么,呃,可能也不是说我们这个呃 结构能够讲明白的啊?他,你,你们要比如说我们刚所看到,对不对?那么你看到他这个里面怎么样?他是有一个, 就是有我们有我们这个 logo 的一个定制啊,是第一个啊,那么其实还有很多的定制啊,那么包括什么呢?比如说我们来看一下啊,他在这个地方包括是马上学院,这个是我们经过定制的啊,定制 之后他还是这样的,那么可能没有定制的话,他这个这个地方他就是一个阿陆的图标,对吧?那么你可以在这个地方怎么样?可以去让你可以看到啊?他这个里面有很多的一些,这个就是我们这就是我们刚刚的五个用力,对不对?那么这些用力其实啊,你去看他是怎么样?很很丑的啊,很丑的 他没有做任何的定制,他就是这样的,对吧?默认情况下啊,我这个地方只做了一个这个 logo 的定制,对不对?其实还有很很多的定制啊,比如说 他这个里面还有就是什么定制嘞?还有一些分项目、分模块的定制,还有用力领着的定制,对不对?那么还包括我们在这个地方啊, 还有一些描述的定制,对吧?优先级的定制,对不对?前置条件日制还有截图的定制,对吧?这个里面有很多的定制啊,那么这个的话也不是我们一款能够讲明白的,对不对?那么这是我们的这个报告啊,那我们报告的话就到这个地方就 ok 了,好吧, 就就是这个啊, ok, 那么相相对来说啊,那么今天的话我们主要是讲什么?就是在我们整个的用力里面使用我们的 partet 来管理,对吧?以及他那些常用的一些插件运行方式,前 前后那些夹具,对不对?重点说明什么?拍太子杠、 fex 扯,以及我们的 cof 袋子,对吧?以及我们怎么样?接口子的话框框的分装,关于接口挂一年的分装,对吧? 以及断言以及怎么样?这个生成我们的这个阿鲁的报告,对不对?就这个啊? ok, 那么这就是我们今天跟大家所分享的内容,对吧?那么 ok, 我们再看一下啊,明天我们主要是讲什么内容呢?对吧?再来看看啊? ok, 明天我们会接着来讲我们这个数据驱动,对吧?因为我们今天所讲的内容,你们有没有发现个问题啊?就说我们 现在所有的用力的数据,你发现没有?全部都在我们的用力里面,对不对?是吧? 你们有自动化工程师吗?怎么会没有呢?对吧?我给你们看到啊,这个地方我们的数据全部都在我们的用力里面,对不对?这个是不合理的,这是不合理的啊,那么我们明天第一个就怎么样把我们的数据抽取出来,对不对?那么实现我们的数据驱动,因为 在我们一个用力里面,你不可能就只有一条数据,对不对?因为你有正力,有反力嘛,对吧?是的啊,异常用力,如何去区分?这个就是我们明天所要讲的内容,对吧? 你叫我这个李李李达,对吧? ok 啊,那么关于用力的正反力的用力,对不对?就是我们明天所要讲的什么?关于数据输送这一块,特别是第一个啊,第二个我们接过框框架,还有请求分装,对不对?我们今天只分装了一个部分, 对吧?只分装的接口关联对不对?那么还有其他的分装,对不对?这里面只分的一个部分,对吧?那么 我们还有第二部分的分装,对不对?关于我们再深层的分装啊,这是第二个步骤,对不对?还有什么呀?这个持续脐橙,对吧?我们把这些东西啊,包括我们的阿鲁报告如何和我们的杰克斯持续脐橙,对吧? 接口子的话一般是用一个效果来用的吗?不是的啊,一般情况下接口子的话里面一般大部分用鸭卵。 对,其实压磨的会比较多一点啊,一个笑不是不可,其实其实这么说吧,一个笑和压磨是可以互换的,他们之间没有说一定要用哪一个啊?你用一个笑也可以,你就压磨也可以啊,但是一般情况下,在目前的市面上啊,用压磨的更多一点,更多一点。好吧,这个是一般的啊, 我们因为一般情况下他至少占了百百百分之八十以上吧,至少是百百百分之八十啊,所以说明天才是我们怎么样才是我们框架分装的一个重点,以及怎么样,以及关于我们压木数据群众的一个重点的位置,包括这包括这个的实体呢,对吧?这些东西啊,都是在我们明天和大家来分享的,好吧? ok, 最后还一个东西啊,很期待是吧?基本上啊,可以这么说吧,每天的话应该都是有满满的干货,对不对?是 ok 啊,那么最后一个东西啊。
好,我们现在这个自动化脚本在执行的过程中呢,我们应该像我们的应用一样,比如说在这个应用里边呢,你做的每一个操作啊,都应该给我们记录下来啊,那这个我们就叫这个日志系统, 那现在的话就是给咱们的自动化脚本也添加一个这样的一个日志系统。呃,我们可以在彼此密斯里边呢,再添加一个文件啊,比如说这个就叫 logo 啊。好,那在 这边的话我们可以去使用拍粉自带的啊,这个日志日志系统啊,我们可以用这个日志系统呢去做这个操作。那首先来看一下啊,第一步呢,我们需要音炮的这个捞给进进来之后呢,我们可以去创建一 个啊,比如说捞给你点该套绕个给他一个名字啊,我们一般用这个名字呢,会啊,通常是我们的,比如说 app 的名称,比如说 cno 的 app 啊,给他这样的一个名字。 然后呢在这边呢,我们可以去就是定一个绕杆啊,这样的一个日字。好,那么这样的一个变量之后呢,我们可以去设置他的一个日字级别,比如说我们记录他的级别为绕根 点,第二个啊,就是记录他的一个最低级别是第二个。那下面的话,我们希望呢我们的日志呢,一方面能够在 命令行里边去打印出来,同样的又可以记录到文件里边,那这个日志呢,提供了这样的一个处理器啊,是这 这个一个是 fl, fl 喊到了啊,就是说这个文件处理器,那这边的话我们需要给他传一个文件名字,比如说我们希望把它放到日志文,我们可以建一个专门的目录 我们的日志,比如说这边创建一个 love you lovex 啊这样的一个文件,那这边的话,我们比如说这个放在 logox 啊目录下啊,比如说这个叫谁弄的点 logo 文件,那我们给他一个权限是,比如说这个权限是 追加啊,每次呢都让他去追加,不会覆盖啊。好,那么这是这个权限也可以指定一下这个编码,比如说 utf 八这样的一个编码机。 好,那么创建一个这个我们可以叫,比如说 fl 啊,这是这个日志级别,那我们也可以再创建一个打印在命令行输出的啊,那这个他叫四 g m, 在这边的话就是我们可以比如说这个就叫 fl。 好,那么这是这个日志级别,那么日志级别的话,我们还要去格式化的一个显示啊,比如说呢,我们希望他显示出来像这样的一个应用啊,他有时间有日志级别,还有这个名字,还有这个呃信息。那所以说我们在这边呢,可以去 再创建一个 fmat 这个格式,那么叫 fmat 的话,我们是比如说这个烙饼点, 我们这边有一个佛麦塔啊,这样的一个克拉斯,在这边的话,我们需要给他传上这个格式,这个格式的话你可以参考官方文档里边,比如说有这个,嗯,这 消息显示的格式,比如说这个来往内幕和这个买飞机就这日子级别,这是显显示信息,那还有这个时间啊,那具体的话可以在 可以在这个步骤里边,比如说 logo 就靠的这个属性里边,这个页面里面可以看到啊,那这边有很多,那比如说我们记录一下这个时间, 好,注意他是在同一行,那我们也给他加上一个中括号。那么后边呢是日制的,比如 说他的一个级别啊,那级别的话我们可以看到这边有个雷锋内幕,好日子级别。那后边的话我们还有一个,比如说这个,是 啊,也也可以记录一下这个方式内幕,你运行的是哪个文件啊?运行的是哪个 函数啊?这个不是文件,对吧?那后边的话我们可以再加上啊,这个买飞机就是你的输出信息。好,那么我们 记录好之后呢,我们可以把它,比如说 fl 点赛特佛迈特,就是我们可以设置他的一个格式,我们把这个佛迈特给他传进来,那这个字母啊,就是说这个文件流也可以去设置赛道佛迈特啊,把这个佛迈的传 进去。那么传进去之后呢,我们把这个 logo 啊,咱们对应的这个 logo 呢,把这个处理器呢给他加进来,比如说 fl 加进来 logo 点 a 的憨豆的 fl 也加进来。好,那么加进来之后呢,咱们可以试一下啊,比如说我在 啊,我们在咱们的这个泰瑟 kiss 里边,比如这个啊,泰瑟 top 啊,泰瑟 top。 那我可以,比如说这边我要去发动这个请求,那我可以去 音 pot, 我们可以去,我可以用这个福尔摩啊,福尔摩啊,这边必那点 logo 啊,音 pot 这边这个 logo 这个变量我们可以看下去,我们就是把这个变量引用进来,引用进来之后呢,我们来看一下, 比如说在这边我要发送几个请求,我可以加个日志啊,比如说啊那个 logo 点,比如说音符啊,或者第八个,第八个,好,第八个我们发送,比如说发送请求 啊,那么这个请求的往后我们可以把这个二发进去。好,那现在的话就是我们可以去,如果下边这个也要去记录这个日子,那就把它放在放在 这个里面啊,这个不是啊,这个是轻巧,对吧?啊? 加进来,加进来之后呢,就是说你每做一个操作都要去给他加一下啊,比如这个要加一下。好,那么加完之后呢,我们再去运行,可以看一下,比如说 p y 太子运行太子的 cas, 下边的,这边是太子的。 好,那这边的话我们可以看到啊,这边就有这个日志,对吧? 日志输出啊,好,那么上边呢,这边大家需要注意啊,因为这个日志输出呢也是一个打印信息,所以说呢,你必须要加上一个 杠 s 参数,他才会给你在啊命哈,就说在这个输出面板里边给我们打印出来,比如说我们看到这边这是打印 打印的日志,那么同样的咱们也可以看一下这个文件 logox 里面啊, logox 里面现在有这个 cno 的点 logo 这个文件, 那这个文件里边呢,同样也会记录下这个操作,比如说这个是执行的函数,然后发生请求啊,我们这边就就简单加一个日志啊,他现在他已经有了啊,可以加进来。好,那 这个的话就是主要是什么呀?来我们来回顾一下,主要就是说呢,我们可以去分装一个日志文件,那这个日志文件呢?因为 你要做这个文件啊,就说把这个日志呢存储到文件里边,同时呢也要打印到这个输出面板里边,所以说呢,我们在这边可以用这个啊,老顶这个模块啊,给他分别给他设置一个, 呃,文件处理器和这个文件流处理器去给他添加。那么添加好之后呢,我们只需要去音炮他这个 logo 这个文件你在什么地方要添加日志,那就在什么地方呢?去音炮的这个 logo 文件 里边,用这个我们定义好的这个变量去添加日志就可以了。
好,上一讲可以使用 excel 去读取和写入文件,那下边这一步的话就是如何把呃整个 excel 里面的文件呢?啊?给他读取出来,读取出来之后形成我们的数据, 用这个数据呢再去驱动我们的测试用力。好,那在这边的话就是我们可以看到这个数据呢,他其实是跟这个结粉这个数据里边的这个格式,我们希望他是有这样的一个列表啊,有这样的一个列表,然后呢去啊去读取, 现在的话就是我们只能读一个单元格,一个单元格去读,那我们正常场景希望是一行一行去读啊,就说可以读取一行一行数据,读取一行数据,然后呢再去 做这个数据,对吧?啊?在于做这个数据的处理。好,我们看一下这个应该怎么去做。 在这边呢,我们可以看到啊,使用这个文档啊,比如说这里边呢去使用这个我们可以看到官方文档,在官方文档里边呢,呃,有一些代码让利,比如说我们在这边呢可以看到,呃, 看到有一个,比如说这个 pluse 维斯维他啊这个链接,这个链接里边是可以通过呃读某个单元格, 那还有一个可以通过这个赛啊去读这个词,对吧?去读这个字,那这边的话提供了一种方式,比如说可以用这个循环的方式去读啊,循环的方式去读,那么在这边的话我们可以看到你也可以去,比如说啊去读这个 一到第一或误导五到十这样的一个方法,那也可以通过呃内置的这些方法也可以去读啊,那这个读取的方式呢?有比较多,比如说你这边你可以看一下, 其实我们只需要知道你有多少行多少列,然后呢去读就 ok 了。那这样的话,比如说有这个套谱,然后呢去看他的这个 rose, 那所以我们这边的话,比如说我们有三行数据,那就应该是可以这样去读一下啊,我们来这个这边 那就是放 x 音软件啊,这边的话是一, 那这边的话就是可以用这个头啊,我们先把他这个 ws 点肉啊,得有多少行,对吧?转换成啊,我们可以看到在这边的转换成这 圆组,你转为圆组之后呢,你可以知道他的长度,那知道长度之后呢,你就可以知道他有多少行了,那所以说在这边的话就是转换成一个 l 音啊,把它转换成就是拿打印出他的一个长度。 好,那么知道他的长度之后呢啊,这边其实在做这个循环之前呢,也可以,比如说先不让他运行 打印一下啊,这样的话就他有多少行,我们比如运行一下可以看到这个结果有三行数据,对吧?有三行数据啊,那我们三行数据其实我们可以从第二行开始去赌,那这边的话就是 写一个符号循环负 x 印软件啊,这边的话我们从第二行开始去读二,然后呢是这个 l、 e、 n, 嗯,这个数据,嗯,那这边的话我们去加一啊,好,再写一个课外,那么外的话就是说我们有多少列啊?比如说我们这边希望有效的数据是从第二列开始, 第二列开始,然后总共是有一二三四五五列,对吧?那所以说呢,这边就是也是从第二号二,然后呢逗号比我们应该是到这个六啊。好,那么这边的话我们可以打印一下,就是 每一行的数据啊,就是每一个单元格的数据,那么单元格的数据的话可以去参考参考这个文档里面,比如说这个 ws 点四二啊,就是你给他指定这个第几行第几列就 ok 了。 好,那我这边的话就是 打印一下啊,这边就是访问他的歪了运行一下可以看一下。 好,那这边的话就是我们打印,哎,这边还有一,还有一列没有打印到,那就是再加一列七啊, 好,可以看到这边所有的数据我们都可以打印到,打印到之后呢,我们可以就是说现在把这个数据呢,其实转换成原来的这这种列表,这种方式,对吧?那所以说在这边呢,我们就可以再建一个空的列表,比如说这个是 第一趟等于空的列表,那么下边的话就说每一行呢,我可以比如说这个是 tiss cas 第一趟啊等于空的列表。好,在这边的话我们可以去 就是每一行的数据呢,我把这个数据呢给它加载进来,加载进来之后呢啊,就是执行 循环一行,那我就在这个台词第一套里面呢,再去加载一下啊判的台词,就是说呢去做这样的一个循环,我们看一下这个结果。好,那么最后的话我可以打印一下,比如说这个台词的。好,我们 我们可以看到这个泰特迪塔的高号是一个二维的这样的一个列表啊,好,那这样的话就是我们就把这个数据呢就已经读取出来了,所以说这个,嗯,可以把它直接我们再建一个文件,比如说太子塔 ex, 第一塔点皮歪,好,那么在这边的话就是我们 写好之后呢,其实这个主要是读取这个文件,对吧?读取这个数据,那现在的话,我们还是比如说音炮的 pypos, 音 pot, 瑞筷子好,那么下边的话就是直接是 df, 比如说太子快的 top 好,那么这边的话我们可以艾特 py 太子脸吗?可怜,就是用他的参数画第一个值呢?还是一个字符串第二个值呢?我们需要把这个太子的打穿过来,因为现在太子的打他是一个二维的这样的一个列表,那二维的列表的话就是说他里边有多少行数据,我们应该是把他当成多少个数 去,啊啊?多少个测试用力,那所以说我们看第一,第一个测试用力,这边的话啊,这边打开这边的话,这是一个 uio, 对吧?我可以给他起一个名字,第一个参数是 ul, 那么第二个参数的话是请求的方法,比如说这个 pose, 那就给他起一个名字第三个,第三个是大家可以看到这个是测试数据, 那所以说这个手可以叫 top 克第一塔,第四个,第四个的话是这个四零幺啊,就是状态码扣的 第五个买飞机啊,透心系,好,那我们可以把这个呢给他放到这里边,放到这里边之后呢,我们现在就可以去做一个判断,比如说啊, ms 的等于 pos, 那我应该是调这个最快色的 pose 请求,所以说这个这边应该是 最快词典 pose, 那么 pose 的话,因为我们这个 ulo 呢,已经在这个列表二边,已经在这个 c 二边定义了,所以说你直接传这个 ul 第二个的话,这个数据,比如说这个第一塔等于 啊,这个数据文我们也就已经都定义好了,所以说就是这个头皮革第一套就是第三个这个数据啊,头皮革第一套好,那么加完之后呢,我们就可以直接拿到这个结果啊,颜色 i s 啊,那下面的话再去加断盐 i s 点状态吧,他应该等于啊,就是我们这边已经 低音好,这个扣的,对吧?这个扣的也已经低音好,那应该是这个扣的这个字段去添加对比,那么后边还有一个这个直接想用结果,对吧?应该是 i s 点 gs 温啊, 等等啊,这个买飞机,那这边的话会有一些问题啊,现在我先运行一下,你会发现他报错啊,先给大家看一下 pyts, 嗯, 再跟大家说一下,因为在这边呢,我们刚才直行的时候,直行的时候呢,这个数据啊,就是说这个数据呢,他是,他是 一个四幅串啊,就是说在这边 你可以看一下,这个数据呢,都是一个自负传,我们期望发送数据的时候他是一个字典,所以说呢要把这个自负传呢转换成字典,那这边就是这个特别的雷塔,那我们可以 因泡腾 g s 纹这个库,那么这个 g s 纹我们刚才在上一讲已经说过,我们可以用 g s 纹点啊,我们用这个 doubs, 对吧?是这个 还是这个?再看一下啊?我们是解码,解码是漏的,对吧?我们用这个漏的去把它转换成解锁,那同样的这个 mac 机呢,他也是祖传也需要用这个解锁点漏的 把它转换成字典对象,这样的话他才能去做对比。好,那我们再来执行一下。 好,两个用力都通过了。啊,那其实这样的话就说你后边可以在 excel 边再去加新的数据,加完之后可以啊,他可以自动的再去啊,通过这个数据驱动,然后再去操作我们的自动化。好,那这个的话就是 excel 的数据。