12 2021 档案
摘要:上一篇讲了setup和teardown,但是我们并不是任何时候都需要全局去设置,那么这一篇来说一说这个@pytest.fixtrue()装饰器 这个装饰器的作用是实现部分用例的前后置,也就是说这个是自己可控可选的。 先来了解一下@pytest.fixtrue()的参数 @pytest.fixtrue
阅读全文
摘要:在pytest框架中有两种前后置的写法,用来做用例执行前和执行后的操作,也就是说在执行用例前会先执行前置,而执行用例后会再执行后置。 为什么要有前后置呢,比如你需要在执行这条用例前先登录或者需要一些其他参数,都可以通过前后置去实现 首先看看第一种写法 setup和teardown 提醒一下这俩都是设
阅读全文
摘要:在实际工作中我们并不是所有用例都每次必须执行的,所以我们就需要用到跳过执行,跳过分为有条件跳过和无条件跳过 我们先来看看无条件跳过的方法 @pytest.mark,skip(reason='')这个方法的作用是无条件直接跳过写在下面的那条用例 代码示例: import pytestclass Tes
阅读全文
摘要:用例执行顺序 首先我们看一看用例的执行顺序 unitest:ascll的大小决定执行的顺序 pytest:默认按照从上到下进行执行 如果我们想要改变用例的执行顺序能够怎么做呢? 这里介绍一个装饰器@pytest.mark.run(order=x),它的作用就是标记该函数作为第x个执行。上代码看看对比
阅读全文
摘要:上一节的笔记讲述了pytest的默认规则,那么这一节的pytest.ini的配置就是支持修改pytest的设置。 先说一下这个配置需要注意的 pytest.ini必须放在根目录下 编码格式必须是ANSI,可以使用nodepad++修改 首先在项目的根目录下新建一个pytest.ini的文件,然后填入
阅读全文
摘要:作为一个单元测试框架,它有着自己的规则,先讲讲它的默认规则 文件名必须以test_开头或者_test结尾 测试类必须以Test开头,并且不能有init方法 函数必须以test开头 如果不按照这个规则来写会怎么样呢? 不按照这个默认规则来写的话,就无法被pytest识别作为测试用例去运行,所以我们还是
阅读全文
摘要:由于简单的登录脚本已经完成,那么下一步要做的就是去优化,把这个脚本转换为测试用例,所以我开始了pytest的学习之路。 本来是准备学unitest的,但是听了朋友的安利,还是决定去学pytest,看了一下两者大同小异,区别也不是很大,当然我是小白,也看不出来,所以就分享一下这两天所做的笔记。 1、下
阅读全文
摘要:这里我是用的公司自己的项目,所以就不给大家实例演示了,不过把代码贴出来分享一下 #导入需要的模块import timefrom appium import webdriverfrom selenium.webdriver.common.by import By#定义一个函数存入设备信息def dev
阅读全文
摘要:在我们做自动化的时候,有些页面元素并不是一开始就完全加载出来的而是需要时间,那么我们就需要去等待一段时间,在appium中有三种等待的方法去支持我们实现这个操作。 1、sleep()方法——固定等待时间 import timetime.sleep(60)强制等待60s,这个等待是脚本停止执行,线程暂
阅读全文
摘要:我们在使用脚本去启动app的时候,需要先写一些配置然后才可以启动,具体代码如下: from appium import webdriver def devices(): desired_caps = { 'platformName': 'Android',#操作系统 'platformVersion
阅读全文
摘要:今天在定位登录按钮的时候发现一个问题 当同一层级有多个重复的classname时,我又不想用xpath和坐标,就无法去定位了,于是找到了这个classname使用下标的方法来进行定位。 在上图中我想定位到蓝色的东路按钮,但是它没有id,没有name,那我就只能用classname进行定位了 这里同一
阅读全文
摘要:之前写过一篇元素定位,但是发现现在的版本不太适用,主要其实就是写法上的改变,定位方法是没有改变的。 之前通过id定位可以写 find_element_by_id('') 而现在的写法则变成了 find_element(By.ID,'') 这里要注意,下面这种写法需要导入web driver的By方法
阅读全文
摘要:我们可以用appium的客户端去定位元素 首先要通过appium的客户端去启动被测程序 这里填写好参数后点击start session就可以启动了,启动之后可以得到下图这样的页面,我们可以点击框出来的那个按钮然后去点击我们想要定位的元素去获得它的信息 比如我这里想要去定位这个同意按钮,那么我就可以点
阅读全文
摘要:因为最近在弄appium这块,我一直都习惯使用真机,就遇到了无法添加设备的问题 1、端口占用之杀进程 端口占用的话就需要去查看是哪个进程占用的端口,然后杀死那个进程就OK了 命令: sudo lsof -i -P | grep -i "listen" 这个是查看进程的命令,找到占用端口的进程,然后再
阅读全文
摘要:今天试了一下鸿蒙系统连接appium,刚看到鸿蒙系统属实有点懵,platformName和platformVersion一下子不知道该怎么填了,但是我还是找到了解决方法,百度看到这方面的资料不多,顺便也分享一下,废话少说,直接上干货。 首先我们要有Android studio,没有的自己下一下。 打
阅读全文
摘要:在上一节中,我们已经配置好了appium的环境并且安装了客户端,那么这一节就讲一下appium客户端配置哪些参数去连接真机。 首先我们打开appium的客户端 点击红色方框里的按钮,进入下一步 可以看到我这里报了个错,但是不要慌,这里这个报错是说没有参数而已,我们配置好了参数就不会有问题啦 好的,接
阅读全文
摘要:最近公司准备开展自动化于是我又重新捡起了多年不碰的appium,因为换了Mac我也还用不太好,所以踩了很多坑也在这里分享给大家。 JDK和SDK的环境配置 jdk和sdk的安装我就不写了(提示一下JDK版本不要装的太高,太高是要收费的),这个和Windows电脑没啥区别的,也没啥好说的,真要不会去百
阅读全文
摘要:之前换VS code用了一段时间,在学到文件读写的时候发现无论怎么写代码都不支持相对路径,只能读取绝对路径的文件于是在网上找了蛮久的资料,在这里分享给大家。 首先,VS code是默认不支持相对路径的这个需要大家自己进行配置。那么怎么配置呢,其实很简单。 在launch.json里添加"cwd":
阅读全文
摘要:1、列表删除所有元素必须用切片去循环遍历 #定义一个列表,每一次循环结束之后,切片里的值会赋予user列表 user = ['admin','judi','ada','hong','ming'] #创建切片,当i在切片中时进行循环 for i in user[:]: #删除切片中的元素i user.
阅读全文
摘要:很抱歉,我的笔记里没有记if判断,那个我觉得不是很难。不过判断和循环是基础里很重要的了,大家一定要多写多练掌握熟练哦。 前面的基础差不多看完啦,那么接下来看看自定义函数吧。 def 函数名(): 括号中可以带参数 形参:定义函数的时候携带的变量,没有值,在调用的时候可以对该变量进行赋值 实参:调用函
阅读全文
摘要:上一节讲了for和while的用法和区别,这一节我们来看看break和continue有啥区别。 break是跳出当前循环继续往下执行 continue是继续执行当前循环 比如我之前做的练习题 #定义一个列表lists = ['bob','chen','hong']#往列表中添加元素lists.in
阅读全文
摘要:在python中的循环有两个一个是for,一个是while,这两个循环有什么区别呢? for循环是限制循环的次数,通过range方法或者是通过列表/元组限制循环的次数。 而while循环则是通过条件去限制,满足这个条件时将不再循环。 举个简单的例子来说: for i in range(0,10):
阅读全文
摘要:断更了几年的我又回来啦,哈哈哈,最近又重新捡起python开始做自动化同时也在学习接口自动化,所以接下来也会努力更新自己学习的东西,希望一起进步,废话少说,接下来分享一下我重新学习python得笔记。 Python有五个标准的数据类型: Numbers(数字) Python支持四种不同的数字类型:
阅读全文

浙公网安备 33010602011771号