- 博客(20)
- 收藏
- 关注
原创 python导入模块、类
思路:上级目录下,新建__init__.py模块,让Python可以通过包名.模块名逐级搜索到目标模块。需要导入的logger模块与base_page模块均在base包下。若被导入模块和导入模块处于同一路径下,可以直接导入,如下图。
2024-06-17 23:30:58
161
原创 ADB—持续更新
ANR(Application Not Responding)应用无响应的简称,是为了在app卡死时,用户可以强制退出APP的选择,从而避免卡机无响应问题,这是Android系统的一种自我保护机制。其中客户端是用来操作的电脑,服务端是Android设备。adb -s XXX log路径 pull,默认拉取到用户目录log文件夹下。在app遇到ANR/Crash等bug时,可以通过ADB来抓取日志。adb version :查看adb的版本。adb devices:查看连接的设备。
2024-06-08 19:12:25
140
原创 一文了解unittest框架、pytest框架
(1)自动化框架为了对一个系统做自动化测试而封装的一个代码主骨架,其它的自动化测试工程只需要去调用这个骨架里面的方法就可以实施自动化测试,这个代码骨架就叫自动化框架。(2)自动化框架1的作用1.提高测试效率,降低维护成本。2.减少人工干预脚本因素3.增加代码的可重用率。(3)单元测试框架和自动化测试框的关系单元测试:指的是针对我们程序的最小单元(方法)进行测试。unittest是它自动化框架的重要的组成部分之一。pom自动化框架的重要的组成部分之一。
2024-05-16 09:49:26
855
原创 pytest基本概念
python - m pytest (用例目录或者文件) -sv --alluredir=(allure报告路径)unittest断言方式有很多,用的多的有三种:alertEqual、alertIn、alertTrue。python -m 意思是把当前目录作为搜索路径,pytest自动搜索路径下满足命名规则的用例。使用时也有区别,断言时要加上self如果是在类中的话,可以把这个断言看成对象的一个属性。-v:显示更详细的执行信息,包括每个测试类、测试函数的名字。-s:显示测试代码中print的内容。
2024-05-15 20:58:12
300
原创 get_screenshot_as_file()方法在存在alert弹窗时报错问题
用python做selenium自动化时,截图出现了错误,奇怪的是正确的用户和密码截图没问题,错误的用户名和密码登录失败出现alert弹窗时截图就报错,真的奇怪,记录一下。
2024-05-15 18:41:14
159
原创 pytest类级别初始化遇到的问题
定义类级别的初始化和清除,在执行下面三个用例的时候,第二个用例会失败,不知道咋回事,知道原因的求请教。所以我把类级别变成方法级别,每执行一次用例就初始化清除一次,就通过了,但是时间比之前长。
2024-05-14 09:39:40
188
原创 正则表达式小括号易错点
()分组,在匹配 电话号码时候,前面用了.*匹配任意次数字符,本认为匹配到手机号码这4个字符,但是。号直接匹配到了倒数第二个字符,后面的(\d+)仅能匹配到一个,看来。号不能乱用,记录一下。
2024-05-11 02:19:29
185
原创 一个程序了解私有成员、封装、继承、多态
程序虽小,五脏俱全,介绍了私有成员、封装、继承、动态等概念,对于理解python中这些抽象的概念很有帮助。
2024-05-10 14:47:48
137
原创 python+selenium+unittest+HTMLTestRunner自动化
工作三年了,测试这个领域目前门槛越来越高,对编程能力要求越来越高,所以本人也在努力学习编程知识,这是我边学习边自己写的一个简单框架,上传下方便大家学习,是完全可用的,不过看懂,需要python基础,在这里再推荐一波,python基础我是跟韩顺平学得,基础真的学得很扎实,所以写起来问题也少,不过我目前也就是python入门水平,大家一起努力加油吧。网盘链接:https://pan.baidu.com/s/1AiVXGGCqKvI6qWsxHHW4Ug。
2024-05-09 00:33:46
149
原创 用内置logging包实现web自动化记录日志的功能
logger:日志对象,logging模块中最基础的对象,用logging.getLogger(name)方法进行初始化,name可以不填。通常logger的名字我们对应模块名,如聊天模块、数据库模块、验证模块等其常用函数有:Logger.setLevel() 设置日志级别Logger.addHandler() 和 Logger.removeHandler() 添加和删除一个HandlerLogger.addFilter() 添加一个FiltersetLevel:设置日志等级。
2024-05-07 17:05:39
606
原创 面向对象编程——私有成员
概念:保护数据隐私,授权才能访问,类中的变量和方法以__开头命名,则使其变为私有,私有的变量和方法仅能在类的内部使用,类的外部无法调用,只能通过公共方法对其进行处理c1 = Clerk('tom', 'python工程师', 20000)name可以直接访问,但是job和salary由于是私有变量无法直接访问,所以在类的内部提供了对其操作的公共方法set和get方法c1.set_job('java工程师')修改成功了,以上是私有成员中的属性,私有方法类似。
2024-05-05 14:19:52
367
1
原创 说self
self在定义成员方法时需要写上,如果不写,需要使用@staticmethod标注,否则会报错。静态方法调用方式:类调用(如C.f()),也可以实例调用(如C().f())self表示当前对象本身,哪个对象调用,self就是哪个对象。在方法内部,要访问成员变量和成员方法,需要使用self。@staticmethod将方法转换成静态方法。当我们通过对象调用方法时,self会隐式传入。
2024-05-05 11:04:47
291
原创 构造器/构造方法
可见创建对象时,__init__方法直接运行了,且name和age也已经传入,self为p1对象在内存中的地址,有人可能问为啥打印出的是对象的地址,这是因为有一个概念为魔术方法,其中__str__在python中print()打印时,自动调用此方法,此方法默认就是打印对象地址。其次,下方打印p1对象的属性name,还是none,可见__init__构造器传入name和age参数后,不会直接影响属性,需要赋值,__init__如不赋值,只是传入功能。构造器/构造方法:创建对象时直接制定对象的属性。
2024-05-01 19:48:32
176
1
原创 【LeetCode】刷题记录错题1:两数之和
当我们使用遍历整个数组的方式寻找 target - x 时,需要注意到每一个位于 x 之前的元素都已经和 x 匹配过,因此不需要再进行匹配。这样我们创建一个哈希表,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。使用哈希表,可以将寻找 target - x 的时间复杂度降低到从 O(N)O(N)O(N) 降低到 O(1)O(1)O(1)。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。
2024-05-01 09:50:12
370
原创 oxs系统下python input()函数在Sublime Text 无法交互问题解决方案
OXS系统下Python input()函数在Sublime Text 无法交互问题解决方案最近在学习python的input()函数,发现Sublime Text无法实现输入数据,正常交互功能,搜索了一些资料,发现解决办法比较简单,本文针对像我一样的小白,只是解决这个问题,至于用到的插件其他用法,以及为什么要这样操作不做阐述一、Python程序举例很简单的程序,要求输入姓名和喜欢的山脉名称,运行程序时发现,输入姓名后就一直卡住不动了,这是因为Sublime Text本身不具备交互功能。二、解决
2020-12-25 20:46:35
440
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人