以下是完整的实现步骤和代码示例,详细说明了如何通过 Python 调用本地部署的 DeepSeek-r1:1.5b 模型,将功能测试用例转换为适合 pytest 和 Page Object(PO)设计模式 的 Playwright 自动化测试脚本。
一、前提条件
-
DeepSeek 模型本地部署
- 通过 Ollama 部署 DeepSeek-r1:1.5b 模型。
- Ollama 提供的本地推理服务默认可通过 HTTP API 访问,地址通常为:
http://localhost:11434/api/generate
-
Python 环境准备
- 安装以下依赖库:
pip install requests pytest playwright jinja2 playwright install
playwright install
用于安装 Playwright 所需的浏览器驱动。
- 安装以下依赖库:
-
测试用例准备
- 功能测试用例需要以 JSON 格式提供,包括标题、描述和步骤。
二、Page Object (PO) 设计模式概述
Page Object 设计模式 是一种常见的自动化测试结构化设计方法,核心思想是将页面的元素及操作封装成一个类(页面对象),从而提高代码复用性和可维护性。
- 页面对象层:每个页面对应一个类,负责封装页面元素和操作。
- 测试用例层:测试用例通过调用页面对象的方法实现,清晰直观。
三、功能测试用例示例
我们将以下功能测试用例转换为 pytest PO 结构的 Playwright 自动化测试脚本。
{
"id": "TC001",
"title": "用户登录成功",
"description": "测试用户输入正确的用户名和密码后是否可以成功登录。",
"steps": [
"打开登录页面 https://example.com/login",
"输入用户名 'test_user'",
"输入密码 'test_password'",
"点击登录按钮",
"验证页面跳转到用户主页"
]
}
四、Python 调用本地 Ollama DeepSeek 推理服务
以下代码实现了调用 DeepSeek 服务并生成 pytest PO 结构的 Playwright 测试文件。
1. 调用 DeepSeek 推理服务
import requests
import json
# 本地 Ollama DeepSeek 推理服务地址
DEESEEK_API_URL = "http://localhost:11434/api/generate"
def call_deepseek_api(test_case):
"""
调用 DeepSeek 推理服务,将功能测试用例转换为 Playwright 脚本。
"""
# 准备输入数据
input_text = f"将以下功能测试用例转换为 pytest Page Object 模式的 Playwright 测试脚本:\n"
input_text = f"标题: