Pytest
Pytest
pytest 是 Python 中非常流行的测试框架,它有许多强大且灵活的功能,适用于各种测试需求,同时还有强大的插件支持。
常用插件:
allure-pytest 是一个集成在 Pytest 中用于生成 allure JSON数据的工具,搭配 allure 可以生成非常美观的报告。
pytest-xdist 是一个集成在 Pytest 中进程级别并行运行测试的工具。
ddt 是一个数据驱动测试工具,可以帮助我们使用更加丰富数据传参方式。
pytest-cov 是一个集成在 Pytest 中用于生成测试代码的覆盖率报告。
pytest-timer 是一个集成在 Pytest 中用于记录每个测试的执行时间。
pytest-sugar 是一个集成在 Pytest 中用于提供更美观的测试输出格式。
pytest-ordering 是一个集成在 Pytest 中用于控制测试用例的执行顺序。
pytest-forked 是一个集成在 Pytest 中用于每个测试用例中启动新的进程,从而确保测试隔离。
安装¶
pip install pytest
命名规范¶
测试文件、测试方法 ...
Faker
Faker
Faker 是Python的第三方库,用于生成测试用的假数据。
它可以帮助开发者生成各种各样的伪数据,如姓名、地址、电话号码、公司名等,广泛用于测试、数据填充、生成样本等场景。
安装¶
pip install faker
使用¶
简单示例:
from faker import Faker# 创建 Faker 对象,默认 en_US 时区fake = Faker()# 指定 zh_CN 中国时区fake = Faker(local='zh_CN')# 获取随机姓名fake.name()
常用的时区:
本地化参数
语言/地区
主要时区
适用场景
zh_CN
中文(中国)
Asia/Shanghai
中文姓名、地址、日期等
en_US
英文(美国)
America/New_York
英文姓名、地址、日期等
en_GB
英文(英国)
Europe/London
英文(英国)姓名、地址、日期等
ja_JP
日文(日本)
Asia/Tokyo
日文姓名、地址、日期等
de_DE
德文(德国)
Eur ...
Appium
Appium
Appium 是一个开源的自动化测试工具,支持移动应用的自动化测试,特别是原生应用、混合应用和移动网站应用。Appium 提供了跨平台的支持,能够对 iOS 和 Android 平台上的应用进行测试,广泛应用于移动端的自动化测试中。
架构¶
Appium Server:Appium 服务器是中心组件,接收并处理来自客户端的请求。Appium Server 通过 HTTP 协议与客户端交互,实际执行测试命令。
Appium Client:客户端是用户编写测试脚本的地方,测试脚本可以用多种编程语言编写,客户端负责通过 Appium Server 与设备交互。
Appium Driver:每个平台(iOS 和 Android)都有不同的驱动程序。Appium 为 iOS 和 Android 提供了独立的驱动程序,分别为:
UIAutomator2:用于 Android 平台的驱动程序。
XCUITest:用于 iOS 平台的驱动程序。
安装¶
Appium Server
Appium 是一个基于 Node.js 的工具,因此需要先安装 Node.j ...
ADB
ADB
SDK 全称 Software Development Kit,是一组用于开发应用程序的工具、库、文档和示例代码的集合。
ADB 全称 Android Debug Bridge,是 Android SDK 里的一个工具,用这个工具可以直接操作管理 Android 模拟器或 Android 设备。
新版本 SDK 的可以通过 Android Developers 命令行 工具中的 sdkmanager 来管理 ADB,如同 pip、npm。
模拟器¶
各 Android 模拟器连接端口:
模拟器名称
端口号
逍遥模拟器
21503
夜神模拟器
62001
海马玩模拟器
26944
雷电模拟器
5555
腾讯手游助手
5555
蓝叠安卓模拟器
5555
安卓模拟器大师
54001
网易MUMU模拟器
7555
天天安卓模拟器
5037
基本指令¶
查看 adb 版本。
adb version
查看帮助文档。
adb help
设备管理¶
查看已连接设备。
adb devices [-l]
-l :详细信息。 ...
Smtplib
Smtplib
Smtplib 是python对smtp传输协议的简单封装,用于发送邮件。
Email 是python对邮件内容的简单封装,携带邮件内容。
两者都是Python的标准库,无需额外安装。
一般我们可以直接使用第三方邮件系统即可,如:
网易邮箱(163/126)
SMTP:smtp.163.com,端口 25 / 465 / 587
IMAP:imap.163.com,端口 143 / 993
POP3:pop.163.com,端口 110 / 995
QQ邮箱(qq/foxmail)
SMTP:smtp.qq.com,端口 25 / 465 / 587
IMAP:imap.qq.com,端口 143 / 993
POP3:pop.qq.com,端口 110 / 995
阿里云邮箱
SMTP:smtp.aliyun.com,端口 25 / 465 / 587
IMAP:imap.aliyun.com,端口 143 / 993
POP3:pop.aliyun.com,端口 110 / 995
构建信息体¶
下面的示例代码中,创建了一个拥有 HTML ...
Openpyxl
Openpyxl
Openpyxl 用于操作 Excel 文件(.xlsx 和 .xlsm 格式)的 Python 库。
Workbook¶
工作簿对象,用于管理整个Excel文件。
通过 openpyxl.Workbook 或 load\_workbook('example.xlsx') 获取。
属性:
active:获取当前活动的工作表。
sheetnames:获取工作簿中所有工作表的名称列表。
方法:
create_sheet(title=None, index=None):创建新工作表,设置标题和插入位置。
remove(sheet):删除指定的工作表。
save(filename):将工作簿保存到指定文件。
close():关闭工作簿。
Worksheet¶
工作页对象,用于管理单个Sheet页。
通过 Workbook.active 或 Workbook[sheet_name] 获取。
属性:
title:工作表名称。
max_row:工作表中的最大行号。
max_column:工作表中的最大列号。
values:返 ...
PyMySQL
PyMySQL
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库。PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。
安装依赖¶
pip3 install PyMySQL
连接开关¶
import pymysql # 开启一个数据库连接db = pymysql.connect(host='localhost', port=3306, user='root', password='', database='')# 关闭数据库连接db.close()
游标开关¶
# 开启一个游标cursor = db.cursor()# 关闭游标cursor.close()
执行语句¶
# 执行一条语句cursor.execute(sql, args=None)# 执行多条语句cursor.executemany(sql, args)
获取数据¶
# 获取单条数据data = cursor.fetchone()# 获取 ...
Selenium
Selenium
Selenium 是一个强大的自动化测试工具,广泛应用于浏览器自动化。
核心执行原理:采用 C/S 架构,将编写的客户端脚本通过HTTP请求,调用 WebDriver 服务端的 API,然后 WebDriver 服务端将这些指令发送给浏览器驱动(Browser Driver),浏览器驱动再调用浏览器的原生 API 来执行操作,从而达到代码脚本来控制浏览器的行为。
简单来说,Selenium 本质上是通过 WebDriver 与浏览器驱动交互,驱动浏览器按照预设的步骤执行 UI 操作。
核心组成:
Selenium Client:编写的 Selenium 测试脚本,会调用 WebDriver API,例如打开网页、点击按钮、输入文本等。
WebDriver Server:是一个 HTTP 服务,它接收来自测试脚本的 HTTP 请求,然后将这些指令传递给 浏览器驱动。
Browser Driver:每个浏览器都有一个对应的 驱动程序,浏览器驱动会根据 WebDriver 指令,调用浏览器的 原生 API 来执行操作,由浏览器厂商提供。
Chrome 浏览器 ...
Python高级
Python高级
在熟悉了Python基础之后,Python中还有很多更高级的内容,学习它们可以让你的工作效率更高。
装饰器¶
装饰器是Python中的一个语法糖,本质就是一个函数。
简单理解¶
def out_func(func): print("out函数开始") def inner_func(*args, **kwargs): print("inner函数开始") result = func(*args, **kwargs) print("inner函数结束") return result print("out函数结束") return inner_func# 装饰器用法@out_funcdef my_func(n): print("my_func运行") return n + 1result = my_func(1)print(result, '\n')# 普通用法,完 ...
Python基础
Python基础
介绍¶
Python是一门解释型、面向对象的高级编程语言。编程语言按程序执行方式大致分为以下两种:
解释型:使用特定的解释器对源码逐行解释成特定平台的机器码,然后机器会立即对机器码进行执行(解释一行,执行一行,无中间文件产生,运行速度较慢)。
编译型:使用特定的编译器对源码一次性编译成特定平台的机器码文件,然后由机器统一对机器码文件进行解释执行(编译一次,可多次执行,有中间文件产生,运行速度较快)。
编程语言按软件开发思想大致分为以下两种:
面向过程:将解决问题的步骤分析出来,用函数把步骤一步一步实现,然后再依次调用(注重功能的实现流程)。
面向对象:将解决的问题分解为若干对象,建立对象的行为属性,通过对象在问题中的行为描述来分别处理问题(注重描述行为的对象)。
发展史¶
Python于1989年圣诞节晚上,由“龟叔”Guido van Rossum在荷兰的数学和计算机科学研究所设计而来。
1991年2月第一个Python编译器诞生,由C语言实现。
1994年1月发布Python1.0版本。
2000年10月发布Python2.0版本。
2008年12月发布 ...