在Ubuntu上进行Python自动化测试,你可以遵循以下步骤:
确保你的系统上已经安装了Python和pip。你可以通过以下命令检查是否已安装:
python3 --version
pip3 --version
如果未安装,可以使用以下命令安装:
sudo apt update
sudo apt install python3 python3-pip
Python有许多测试框架,常用的有unittest、pytest和nose。这里我们以pytest为例。使用以下命令安装pytest:
pip3 install pytest
创建一个Python文件,例如 test_my_module.py
,并编写针对你的代码的测试用例。以下是一个简单的示例:
# test_my_module.py
def add(a, b):
return a + b
def test_add():
assert add(2, 3) == 5
assert add(0, 0) == 0
在终端中,导航到包含测试文件的目录,然后运行以下命令:
pytest test_my_module.py
pytest会自动发现并运行所有以 test_
开头的文件和函数。
pytest提供了丰富的功能,如参数化测试、fixtures、mocking等。以下是一个使用pytest进行接口自动化测试的示例:
pip3 install requests
import pytest
import requests
from typing import Dict, Any
class APITestFramework:
def __init__(self, base_url: str):
self.base_url = base_url
self.session = requests.Session()
def api_request(self, method: str, endpoint: str, **kwargs) -> Dict[str, Any]:
url = f"{self.base_url.rstrip('/')}/{endpoint.lstrip('/')}"
try:
response = self.session.request(method, url, **kwargs)
response.raise_for_status()
return {
'status_code': response.status_code,
'data': response.json() if response.content else {},
'headers': dict(response.headers)
}
except requests.exceptions.RequestException as e:
pytest.fail(f"API请求失败: {e}")
@pytest.fixture(scope="session")
def api_client():
return APITestFramework("http://localhost:8000")
@pytest.fixture
def test_user():
return {
"username": f"test_user_{int(time.time())}",
"email": "test@example.com",
"password": "SecurePass123!"
}
def test_user_login(api_client, test_user):
data = {"username": test_user["username"], "password": test_user["password"]}
response = api_client.api_request("POST", "api/login", json=data)
assert response['status_code'] == 200
在终端中运行以下命令:
pytest test_example.py
你可以使用GitHub Actions、GitLab CI或其他CI工具来自动化测试流程。以下是一个简单的GitHub Actions配置示例:
# .github/workflows/python-app.yml
name: Python application
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest
- name: Run tests
run: pytest
通过以上步骤,你可以在Ubuntu上配置一个基本的Python测试环境,并开始编写和运行测试。