常用的库及常用函数
开发
Python 在后端和前端开发中都有广泛的应用。下面分别介绍一些常用的库和常用函数。
后端开发
Web 框架
-
Flask: 一个轻量级的 Web 框架,适合小型到中型的应用。
- 常用函数:
Flask(__name__)
,route()
,render_template()
,request
等。
- 常用函数:
-
Django: 一个功能强大的 Web 框架,遵循 MVC 设计模式,适合大型项目。
- 常用函数/方法:
models.py
中的模型定义,views.py
中的视图函数,urls.py
中的路由定义,以及 ORM 相关的查询方法。
- 常用函数/方法:
数据库
-
SQLAlchemy: ORM 库,用于与关系型数据库交互。
- 常用函数/方法:
session.add()
,session.commit()
,session.query()
等。
- 常用函数/方法:
-
psycopg2: PostgreSQL 数据库的适配器。
- 常用函数/方法:执行 SQL 查询,处理结果等。
认证和授权
-
Flask-Login: 提供用户会话管理的扩展。
- 常用函数/方法:
login_user()
,logout_user()
,current_user
等。
- 常用函数/方法:
-
Flask-JWT-Extended: 用于处理 JSON Web Tokens (JWT) 的扩展。
- 常用函数/方法:
create_access_token()
,verify_jwt_in_request()
等。
- 常用函数/方法:
API 开发
-
Flask-RESTful: 用于构建 RESTful API 的扩展。
- 常用函数/方法:定义资源类,使用
marshal
进行数据序列化等。
- 常用函数/方法:定义资源类,使用
其他工具
-
requests: 用于发送 HTTP 请求。
- 常用函数:
get()
,post()
,json()
等。
- 常用函数:
-
Python Decouple: 用于管理环境变量的库。
- 常用函数/方法:从
.env
文件中加载配置。
- 常用函数/方法:从
前端开发
虽然 Python 主要用于后端开发,但也有一些库和工具可以用于前端开发。
模板引擎
-
Jinja2: Flask 默认的模板引擎。
- 常用函数/方法:控制结构(如
for
,if
),变量插值({{ variable }}
),过滤器等。
- 常用函数/方法:控制结构(如
前端框架
- Pyodide: 在浏览器中运行 Python 的库,可以与 JavaScript 前端框架(如 React、Vue)结合使用。
数据可视化
-
Plotly: 创建交互式图表的库。
- 常用函数/方法:创建图表的各种函数,如
go.Bar()
,go.Scatter()
等。
- 常用函数/方法:创建图表的各种函数,如
-
Bokeh: 用于数据可视化的交互式绘图库。
- 常用函数/方法:
ColumnDataSource()
,figure()
,show()
等。
- 常用函数/方法:
Web 开发
- Brython: Python 3 在浏览器中运行的实现,用于开发 Web 应用。
其他工具
- PyWebIO: 基于 Web 的简易 Python 输入输出库,用于快速创建基于 Web 的小工具。
需要注意的是,这里列出的只是部分常用的库和函数。实际上,Python 生态系统中还有大量的库和工具可供选择,具体选择哪个取决于你的项目需求和个人偏好。
UI自动化
UI自动化测试中,常用的库及其相关的常用函数如下:
Selenium
Selenium是一个用于Web应用程序测试的工具,它支持多种浏览器,并提供了丰富的API来进行UI自动化测试。
常用函数:
webdriver.Chrome()
: 初始化Chrome浏览器驱动。webdriver.Firefox()
: 初始化Firefox浏览器驱动。driver.get(url)
: 打开指定的URL。driver.find_element_by_id()
,driver.find_element_by_name()
,driver.find_element_by_xpath()
,driver.find_element_by_css_selector()
: 根据不同的选择器查找页面元素。element.click()
: 点击元素。element.send_keys(text)
: 在元素中输入文本。driver.quit()
: 关闭浏览器。
Appium
Appium是一个用于移动应用(iOS和Android)的自动化测试框架,它允许你使用WebDriver协议来测试原生、移动Web和混合应用。
常用函数:
webdriver.Remote()
: 连接到Appium服务器并初始化WebDriver会话。driver.find_element_by_id()
,driver.find_element_by_xpath()
,driver.find_element_by_accessibility_id()
,driver.find_element_by_class_name()
: 在移动应用界面上查找元素。element.click()
: 点击移动应用界面上的元素。driver.swipe()
,driver.pinch()
,driver.tap()
: 执行手势操作,如滑动、捏放和点击。driver.get_screenshot_as_file()
: 获取当前屏幕截图并保存到文件。
PyAutoGUI
PyAutoGUI是一个Python模块,用于程序控制鼠标和键盘来自动化GUI交互。
常用函数:
pyautogui.moveTo()
: 移动鼠标到指定位置。pyautogui.click()
: 在当前鼠标位置执行点击操作。pyautogui.typewrite(text)
: 输入指定文本。pyautogui.press(key)
: 按下并释放指定的键。pyautogui.hotkey(key1, key2, ...)
: 发送热键组合。
Pywinauto
Pywinauto是一个用于Windows GUI自动化测试的库。
常用函数:
Application().start(path_to_executable)
: 启动一个Windows应用。app.window(title=...)
: 选择一个窗口。window.Button('Button text').click()
: 点击窗口中的按钮。window.Edit('Edit control').set_text('Some text')
: 在编辑框中输入文本。window.close()
: 关闭窗口。
unittest
虽然unittest不是专门用于UI自动化的库,但它是Python的标准测试框架,经常与上述库结合使用来编写和管理UI测试用例。
常用函数:
unittest.TestCase
: 创建测试用例类。test_method()
: 编写测试用例方法(通常以test_
开头)。self.assertEqual(expected, actual)
: 断言预期值和实际值是否相等。self.assertTrue(condition)
: 断言条件是否为真。unittest.main()
: 运行所有测试用例。
这些库和函数提供了进行UI自动化测试所需的基本功能。具体使用哪个库和函数取决于你的测试需求,例如你要测试的是Web应用还是移动应用,以及你的测试环境。
接口自动化
在Python中进行接口自动化测试时,常用的库和函数包括:
1. requests
requests
是Python中一个非常流行的HTTP库,用于发送所有类型的HTTP请求。
常用函数:
requests.get(url, params=None, **kwargs)
: 发送GET请求。requests.post(url, data=None, json=None, **kwargs)
: 发送POST请求。requests.put(url, data=None, **kwargs)
: 发送PUT请求。requests.delete(url, **kwargs)
: 发送DELETE请求。response.status_code
: 获取HTTP响应状态码。response.json()
: 解析JSON响应内容。response.text
: 获取响应的文本内容。response.headers
: 获取响应头信息。
2. unittest
unittest
是Python的标准测试框架,用于编写和运行测试用例。
常用函数/方法:
unittest.TestCase
: 创建测试用例类。test_method()
: 编写测试用例方法(通常以test_
开头)。self.assertEqual(expected, actual)
: 断言预期值和实际值是否相等。self.assertTrue(condition)
: 断言条件是否为真。unittest.main()
: 运行所有测试用例。
3. json
json
库用于处理JSON数据。
常用函数:
json.loads(s)
: 将JSON格式的字符串s
解码为Python对象。json.dumps(obj)
: 将Python对象obj
编码为JSON格式的字符串。
4. pytest
pytest
是一个更现代、更灵活的测试框架,与unittest
类似。
常用函数/方法:
pytest.mark.parametrize()
: 参数化测试。assert
: 断言语句,用于验证测试条件。pytest.fixture()
: 定义测试前需要设置的固定装置(如数据库连接、配置加载等)。
5. mock
mock
库用于模拟对象和行为,以便在测试中替换实际对象或行为。
常用函数/方法:
mock.patch()
: 用于模拟对象、方法或属性。mock.Mock()
: 创建一个模拟对象。mock.call_args
: 获取模拟对象被调用时的参数。mock.assert_called_with()
: 断言模拟对象是否以特定参数被调用。
6. HTTPBin
HTTPBin
是一个在线的HTTP请求和响应服务,常用于接口测试中的模拟后端。
常用URL:
/get
: 测试GET请求。/post
: 测试POST请求。/status/CODE
: 返回指定HTTP状态码。
7. 其他库
- responses: 用于模拟HTTP响应的库。
- requests-mock: 用于模拟HTTP请求的库。
- pytest-httpbin: 结合
pytest
和HTTPBin
的库,用于接口测试。
这些库和函数提供了接口自动化测试所需的基本功能,包括发送HTTP请求、编写测试用例、处理JSON数据、模拟对象和行为等。具体使用哪个库和函数取决于你的测试需求和个人偏好。