![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习python
文章平均质量分 77
老孟说禅
不装不端,有点二 加v:zhjl2024
展开
-
ADB常用命令及Monkey测试
一、Monkey测试Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法Monkey是Android SDK提供的一个命令行工具,可以简单方便的发送随机的用户事件流,对Android APP做压力(稳定性)测试,主要是为了测试app是否存在崩溃与未响应等情况。目前在某些Android应用平台,新版app发布时,平台会执行monkey,检测APP是的稳定性、健壮性;1、通过adb 启动monkeya. 在cmd命令行执行:adb devices。原创 2024-02-06 14:16:55 · 3657 阅读 · 0 评论 -
Pytest 与allure测试报告集成
with allure.step(f"使用账号名称:{name},密码:{password}进行登录"): 在报告中记录测试用例中的测试步骤或详细信息,放在测试用例的代码逻辑中;@allure.feature("测试登录模块"): 在报告中记录测试需求(即测试用例集的功能,要测试什么)一般修饰测试类(testsuite);@allure.story("用正确的账号与密码登录"):在报告中记录根据测试需求细化的测试场景(即测试用例场景描述)一般修饰测试用例即方法;原创 2024-02-01 21:23:50 · 646 阅读 · 0 评论 -
Allure安装与环境部署
在Pycharm中的命令行输入:pip install allure-pytest pip3 install allure-pytest -i。配置完成后在windows系统命令行中输入:Java -version和Javac -version。JAVA_HOME指向的是JDK的安装路径,如C:\Program Files\。allure需要Java环境的支持,因此需要首先配置JDK环境。这个新建的环境变量就是allure的bin的文件路径。原创 2024-01-31 11:17:11 · 2319 阅读 · 0 评论 -
Pytest测试用例参数化
pytest.mark.parametrize('参数名1,参数名2...参数n', [(参数名1_data1,参数名2_data1...参数名n_data1),(参数名1_data2,参数名2_data2...参数名n_data2)])parametrize中的测试数据是一个list类型 list中存入多个(name,password)元祖形式的测试数据,[("Jie",223456),("Jack",111111),("Jame",222222)]通过YAML文件实现参数化。原创 2024-01-30 20:27:32 · 3357 阅读 · 0 评论 -
Pytest fixture机制
上述代码,test_mod8.py 模块中test_add_shopCar,test_one, test_two测试函数中入参分别为conftest.py模块中fixture装饰的login(),add_func(),从而实现了fixture装饰下的函数前置功能,可供多个测试模块调用;当conftest.py中也存在re_str时,测试用例首先执行模块中的re_str,只有当类中的fixture与模块中的fixture都不存在时,才会引用conftest.py中的fixture。原创 2024-01-29 22:35:03 · 735 阅读 · 0 评论 -
Pytest 识别case规则
因为 pytest -vs 该命令没有指定目录,则从 D:\Python Data\pythonTeach 文件夹(运行目录)递归查找以test_开头或者以_test结尾的.py文件,在测试文件中查找Test开头的类,以及类中以test_开头的方法,查找测试文件中test_开头的函数;递归执行mod3文件夹下的所有以test_开头或者以_test结尾的.py文件,在测试文件中查找Test开头的类,以及类中以test_开头的方法,查找测试文件中test_开头的函数;在命令行中执行 pytest -vs。原创 2024-01-28 10:35:49 · 1284 阅读 · 0 评论 -
requests库的使用
在通过requests.post()进行POST请求时,传入报文的可选参数有两个,一个是data,一个是json;Requests 是一个优雅而简单的 Python HTTP 库,其实 Python 内置了用于访问网络的资源模块,比如urllib,但是它远不如 Requests 简单优雅,而且缺少了许多实用功能。Requests 提供了几乎所有的 HTTP 请求构造方法,以及通过传入参数的方法,对发送的请求进行定制化的配置,可以用来应对各种不同的请求场景。发送一个带参数的get请求。一、HTTP请求构造。原创 2024-01-27 09:11:32 · 758 阅读 · 0 评论 -
Python邮件封装
5、att.add_header('Content-Disposition','attachment',filename='allure测试报告.zip') 通过filename定义可下载的附件名;MIMEText('这是一个测试内容','html','UTF-8') :邮件主体内容三个参数('文本内容','文本格式','文本编码');2、通过 body = MIMEText('正文文本内容','plain','utf-8') 定义邮件主体的文本内容;message['To']:邮件主体中接收者名称;原创 2024-01-26 20:11:27 · 514 阅读 · 0 评论 -
Python基础之日志封装
Warning : 打印warning,error,critical级别的日志,一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如,磁盘空间低),这个软件还能按预期工作。2、logger = logging.getLogger( ): 生成一个logging模块的主体,为程序提供记录日志的接口,并根据日志级别把对应日志分发给不同 handler;8、通过调用Handler的setFormatter把fmt对象作为参数传入来定义输出到控制台的日志格式;原创 2024-01-24 22:55:20 · 1176 阅读 · 1 评论 -
Python基础之数据库操作
在cursor( ) 创建游标后通过execute( ) 执行sql,需要通过connect实例调用commit( ) 进行数据提交。1、在PyCharm中通过 【File】-【setting】-【Python Interpreter】搜索 PyMySQL进行安装。注:通过pip安装,可能会提示需要更新pip,这时可执行:pip install --upgrade pip 进行更新pip。4、执行sql语句后,需要调用 fetchone() 或 fetchall() 方法来获得查询的返回结果。原创 2024-01-23 22:08:16 · 2362 阅读 · 0 评论 -
Python基础之文件操作(I/O)
上面我们已经了解通过open()函数打开一个文件后需要通过close()来关闭这个打开的文件,目的是释放资源,防止资源泄露,在python中提供了with...as...语句来操作上下文管理器,以及时释放资源,使用 with as 操作已经打开的文件对象,无论期间是否抛出异常,都能保证 with as 语句执行完毕后自动关闭已经打开的文件。期中,file表示已打开的文件对象,对于已经通过open()函数打开的文件,操作完成后一定要调用close()函数进行关闭,进行系统资源释放,否则程序容易出现问题。原创 2024-01-22 23:12:14 · 1159 阅读 · 0 评论 -
Python基础之异常处理
默认情况下,程序是要终止的。上面是通过try...except 优化后的函数,把会出错的代码放入try: 语句下作为try的子句,当try下面的代码出错时,程序会执行except:下面的代码,并执行程序后续代码,如果try: 下面的代码没有出错,则跳过except: 直接执行后续代码,程序继续运行。try: 下面的代码未发生异常,则执行else: 下面的代码,如果发生异常则执行except: 下面的代码,因此esle: 代码块的执行与否,取决于try: 是否报异常;原创 2024-01-21 22:35:10 · 1038 阅读 · 0 评论 -
Python 基础之import语句
上面代码示例表明在D5.py模块中通过导入D4.py模块,会执行D4.py模块下的可执行代码 func_d4() 函数,该函数中__name__变量变更为自己的所属的模块名D4,如果不通过导入调用,直接在D4.py下执行func_d4()函数,__name__变量为__main__,通过此特性如果D4.py模块下的代码不想被D5.py模块导入时执行,可加入判断 if __name__ == '__main__': 把不需要被导入执行的代码放到 if 判断的子语句中。from 文件夹.模块 import *原创 2024-01-20 20:54:25 · 1560 阅读 · 0 评论 -
Python 面向对象基础补充
在类内部实例方法中对实例方法的调用(即在类内部的实例方法中调用 get_perimeter( ))在类内部实例方法中实现类属性的访问(即在类内部实例方法中获取到 angle 的值)在类外部实现实例方法的调用(即在类外部调用 get_perimeter( ))在类外部实现类属性的访问(即在类外部获取到 angle 的值)1、通过实例调用类方法, 实例.类方法;2、通过类名调用类方法, 类名.类方法;1、通过实例调用类方法, 实例.类方法;2、通过类名调用类方法, 类名.类方法;跟类方法调用方法一致。原创 2024-01-19 21:42:57 · 653 阅读 · 1 评论 -
Python基础之面向对象
上述代码,创建两个不同的小狗对象,它们都有各自的name, age, hair_color属性,以及各自的dog_run(), dog_blink_eles()方法,那把Jamies的name属性以及dog_run方法与Tom的区分开来,就需要依靠self这个参数,当实例化Dog创建一个对象时,Python 会自动绑定类方法的第一个参数self指向调用该方法的对象(实例对象),实例化时会开辟一块新的内存空间,每个实例都是开辟一个新的空间来存放该对象,每个实例的self都会指向对应的内存地址,如下面代码。原创 2024-01-18 21:18:10 · 1014 阅读 · 1 评论 -
Python基础之高级特性介绍
列表对象对内存的占用,决定于其列表中元素个数,如果上百万个元素的列表不仅会占用很大的内部空间,而且其元素利用率不高将会造成很大的资源浪费,所以生成器,就是按照某种算法推算列表元素,通过循环能不断推断下一个元素,而不必创建整个list,来节省空间,即边循环边计算。上述代码中的 numbers[0:100]即是切片,从numbers索引(下标)0开始,一直取到索引(下标)99,但不包含索引100,即取索引0,1,2,3......99对应的元素(前包含后不包含)原创 2024-01-17 20:36:31 · 987 阅读 · 0 评论 -
Python基础之函数
从上面例子可以看到,默认参数可以简化函数的调用,当参数y在定义函数时指定了默认值后,在后续其他代码调用该函数时,y参数可不传入参数(非必填参数),当y不传入参数时,y取默认值,当y被传入参数时,y取最新的值。注:函数需要return来把数据返回给外部调用,如果不写return,函数默认return None,在创建函数时,如果该函数没有参数,也必须保留()位置参数,有时也称必备参数,指的是必须按照正确的顺序将实际参数传到函数中,换句话说,调用函数时传入实际参数的数量和位置都必须和定义函数时保持一致。原创 2024-01-16 21:36:10 · 814 阅读 · 1 评论 -
Python基础之循环
while 语句执行的具体流程为:首先判断条件表达式的值,其值为真(True)时,则执行代码块中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块...如此循环,直到条件表达式的值为假(False),才终止循环。试一试:编写一个猜数字游戏,random.randint(0,10)方法是从0-10中生成一个随机数,下面程序,会从键盘上获取一个整数,并比较这个生成的随机数,当输入’q’时退出这个程序。例:计算 1+2+3+4+5+6+7+8+9 的和。原创 2024-01-16 21:13:37 · 783 阅读 · 1 评论 -
Python基础之条件判断
条件判断是程序实现自动化任务的基础之一,比如,当程序跟用户作交互时,程序可以根据用户输入的数据进行判断,从而执行不同的代码语句,在Python程序中,用 if 语句实现。上面说过,if 和 elif 后面的“表达式”的形式是很自由的,只要表达式有一个结果,不管这个结果是什么类型,Python 都能判断它是“真”还是“假”。Python是根据缩进来判断代码块包含关系的,如果 if 条件是 True ,就执行if下缩进的子语句,如果为False,则执行else下缩进的子语句。比如,下面的表达式都是不成立的。原创 2024-01-16 21:03:20 · 882 阅读 · 1 评论 -
Python基础之数据类型与变量(三)
注:字典中的key必须是一个不可变对象,在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。在python中通过 % 来格式化输出,在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%占位符,后面就跟几个变量或者值,顺序要对应好。为了避免不必要的异常,获取字典中的value,可通过get( )函数,如果没有这个key,则返回None,也可指定返回。赋值运算符(=, +=, -=, *=, /=,%=,**=,//=)比较运算符(==,!原创 2024-01-16 11:49:32 · 513 阅读 · 1 评论 -
Python基础之数据类型与变量(二)
()既可表示tuple,又可能表示数学公式中的(),因此为了区分不同解决歧义,Python语法规定,当tuple只有一个元素时,必须 加一个逗号, 来区分数学上的()因此 tuple 类型,没有append( ), insert( ), pop( )方法以及对元素重新赋值,相对list来说,tuple的不变特性,可使代码更安全。定义一个空列表 citys= [ ],在citys中加入元素城市名 '北京','上海','杭州','深圳'在任务二基础上,对citys列表'上海' 和 '杭州' 之间插入 '武汉'原创 2024-01-16 11:38:39 · 385 阅读 · 0 评论 -
Python基础之数据类型与变量(一)
任何计算机程序都是为了执行一个特定的任务,有了输入,用户才能告诉计算机程序所需的信息,有了输出,程序运行后才能告诉用户任务的结果。在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。print( )输出,括号中的内容,就是需要输出内容,如果括号中是字符串,那输出的就是一个字符串。整数表示方法在程序中与数学上的写法一模一样,如:1,10,200,-55,0等等。等等,注:单引号/双引号,只是字符串的表达方式,字符串中的字符不包含单双引号。原创 2024-01-15 19:52:25 · 339 阅读 · 0 评论 -
Python基础之PyCharm简介
pycharm是Jetbrains家族中的一个产品,Jetbrains开发包括Java编辑器(IntelliJ IDEA)、JavaScript编辑器(WebStorm)、PHP编辑器(PHPStorm)、Ruby编辑器(RubyMine)、C和C++编辑器(CLion)、.Net编辑器(Rider)、iOS/macOS编辑器(AppCode)等。通过鼠标滚轮调整代码字体大小【File】->【Settings】->【Editor】->【General】原创 2024-01-15 15:28:02 · 1378 阅读 · 0 评论 -
学习python的环境准备
False,代码少的代价是运行速度慢,同一个功能C语言编写的运行只需要1s,Java编写的运行需要3s,Python编写的可能需要10s,因此项目开始技术选型时只有适合的才是最好的,因此编程语言也不存在高低贵贱之分;用编程语言来开发程序,都是为了让计算机干活,比如下载一部电影,编写一个文档论文,通过QQ与朋友进行交流通讯等等,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。而不同的编程语言,干同一个活,编写的代码量,差距也很大;原创 2024-01-15 14:55:49 · 939 阅读 · 0 评论