python 自动化测试脚步
时间: 2025-05-24 22:07:57 浏览: 11
### Python 自动化测试脚本示例与指南
Python 是一种广泛应用于自动化测试的强大编程语言,它支持多种类型的测试框架和工具。下面详细介绍几种常见的 Python 自动化测试场景及其实现方法。
#### 接口自动化测试
接口测试是软件测试的重要组成部分之一,主要用于验证服务端 API 是否按预期工作。以下是一个典型的接口自动化测试脚本:
```python
import requests
import unittest
class TestAPI(unittest.TestCase):
def setUp(self):
"""初始化环境"""
self.base_url = 'https://api.example.com'
def test_get_request(self):
"""GET 请求测试"""
url = f"{self.base_url}/data"
response = requests.get(url)
self.assertEqual(response.status_code, 200)
def test_post_request(self):
"""POST 请求测试"""
url = f"{self.base_url}/submit"
payload = {'key': 'value'}
headers = {'Content-Type': 'application/json'}
response = requests.post(url, json=payload, headers=headers)
self.assertEqual(response.status_code, 201)
if __name__ == '__main__':
unittest.main()
```
这段代码展示了如何使用 `unittest` 框架结合 `requests` 库来进行基本的 GET 和 POST 测试[^3]。
#### Web UI 自动化测试
Web 用户界面(UI)测试通常依赖 Selenium 或 Splinter 这样的专用库来模拟真实用户的操作行为。这里给出一个基于 Splinter 的简单登录页面测试例子:
```python
from splinter import Browser
browser = Browser('chrome')
try:
browser.visit('http://example.com/login')
# 填充用户名密码字段
username_input = browser.find_by_id('username').first.fill('test_user')
password_input = browser.find_by_id('password').first.fill('secure_password')
# 提交表单
button = browser.find_by_value('Login').click()
finally:
browser.quit()
```
这个片段说明了怎样加载指定网站、定位 HTML 元素并交互最后退出浏览器的过程[^4]。
#### 单元测试的最佳实践
除了上述两种主流形式外,还有针对内部逻辑单元级别的细粒度检验也很重要。推荐遵循 AAA(Arrange Act Assert)模式组织每一个单独的小测验项:
- **Arrange**: 准备必要的前置条件比如创建对象实例或者配置外部资源;
- **Act**: 对目标实体调用相应的方法触发动作;
- **Assert**: 断言期望的结果是否符合实际情况;
例如:
```python
def add(a,b):
return a+b
class AddFunctionTest(unittest.TestCase):
def test_positive_numbers(self):
result = add(2,3)
self.assertEqual(result,5,"Positive numbers addition failed")
def test_negative_and_positive_number(self):
result = add(-7,8)
self.assertEqual(result,1,"Negative and positive number addition failed")
# Run the tests when this file is executed directly.
if __name__ == "__main__":
unittest.main()
```
---
阅读全文
相关推荐


















