当前位置: 首页 > wzjs >正文

长沙建网站设计公司网络整合营销理论

长沙建网站设计公司,网络整合营销理论,福田网站建设新闻,宣传平台的软件有哪些编写pytest selenium的接口自动化脚本格式 参考资料:https://www.byhy.net/auto/pyatframework/pytest-01/ 接口脚本模版: UI测试用例模版 快速生成自动化测试用例的实践指南 一、环境准备 安装依赖库 pip install pytest requests selenium webdri…

编写pytest + selenium的接口自动化脚本格式
参考资料:https://www.byhy.net/auto/pyatframework/pytest-01/
接口脚本模版:
在这里插入图片描述

UI测试用例模版
在这里插入图片描述

快速生成自动化测试用例的实践指南


一、环境准备
  1. 安装依赖库

    pip install pytest requests selenium webdriver-manager allure-pytest
    
  2. Allure 环境配置

    • 下载 Allure 命令行工具
    • 添加 Allure 的 bin 目录到系统环境变量。

二、项目结构规划
project/
├── api/                  # 接口封装模块
│   ├── config.py         # 环境配置
│   └── urls.py          # 接口 URL 管理
├── tests/                # 测试用例模块
│   ├── conftest.py       # 全局 Fixture
│   ├── test_api/         # API 测试
│   └── test_ui/          # UI 测试
├── requirements.txt      # 依赖库清单
└── pytest.ini            # Pytest 配置

三、快速生成用例的步骤
1. 解析接口文档,封装接口
  • 根据接口文档提取关键信息

    • 请求方法(GET/POST/PUT/DELETE)
    • URL 路径(如 /api/login
    • 请求参数(必填项、类型、取值范围)
    • 响应结构(状态码、字段定义)
  • 封装到 api/urls.py

    # api/urls.py
    from .config import EnvConfigclass MerchantUrls:@propertydef login(self):return f"{EnvConfig.BASE_URL}/api/login"def get_user_info(self, user_id):return f"{EnvConfig.BASE_URL}/users/{user_id}"
    

2. 编写数据工厂(Data Factory)
  • 动态生成测试数据

    # tests/data_factory.py
    from faker import Fakerfake = Faker('zh_CN')class TestData:@staticmethoddef generate_user():return {"username": fake.user_name(),"phone": fake.phone_number(),"password": fake.password()}
    
  • 参数化测试用例

    # tests/test_api/test_login.py
    import pytest
    @pytest.mark.parametrize("username, password", [("admin", "valid_password"),("", "invalid_password"),  # 空用户名("admin", "")              # 空密码
    ])
    def test_login(username, password):# 调用接口并断言
    

3. 实现基础 Fixture
  • 全局 Token 管理

    # tests/conftest.py
    @pytest.fixture(scope="session")
    def auth_token():response = requests.post(MerchantUrls().login, json=VALID_CREDENTIALS)return response.json()["token"]
    
  • 浏览器驱动管理(UI 测试)

    # tests/conftest.py
    @pytest.fixture
    def browser():driver = webdriver.Chrome()yield driverdriver.quit()
    

4. 编写测试用例模板
  • API 测试用例模板

    # tests/test_api/test_user.py
    def test_get_user_info(auth_token):headers = {"Authorization": f"Bearer {auth_token}"}response = requests.get(MerchantUrls().get_user_info(1), headers=headers)assert response.status_code == 200assert "id" in response.json()
    
  • UI 测试用例模板(POM 模式)

    # tests/test_ui/pages/login_page.py
    class LoginPage:def login(self, username, password):self.driver.find_element(By.ID, "username").send_keys(username)self.driver.find_element(By.ID, "password").send_keys(password)self.driver.find_element(By.ID, "login-btn").click()# tests/test_ui/test_login.py
    def test_ui_login(browser):login_page = LoginPage(browser)login_page.login("admin", "password")assert "dashboard" in browser.current_url
    

5. 集成 Allure 报告
  • 添加 Allure 注解

    @allure.epic("用户管理")
    @allure.feature("登录功能")
    @allure.story("成功登录")
    def test_login_success():with allure.step("输入用户名密码"):# 操作步骤with allure.step("点击登录按钮"):# 操作步骤
    
  • 生成并查看报告

    pytest --alluredir=./reports   # 生成报告数据
    allure serve ./reports         # 启动本地报告服务
    

四、效率提升技巧
  1. 使用模板引擎

    • 通过 Jinja2Cookiecutter 生成基础代码,减少重复编写。
  2. Excel/YAML 数据驱动

    # 从 Excel 读取测试数据
    import pandas as pd
    test_data = pd.read_excel("test_cases.xlsx").to_dict("records")@pytest.mark.parametrize("data", test_data)
    def test_api(data):requests.post(url, json=data)
    
  3. 接口自动化工具集成

    • 使用 Postman 导出用例为 JSON,通过脚本转换为 pytest 用例。
  4. 代码片段复用

    • 将常用操作封装为函数(如数据库清理、文件上传)。

五、常见问题解决
  1. 依赖接口的测试用例

    • 方案:使用 pytest-dependency 标记用例依赖关系。
    @pytest.mark.dependency(name="login")
    def test_login():pass@pytest.mark.dependency(depends=["login"])
    def test_user_info():pass
    
  2. 环境切换问题

    • 方案:通过环境变量动态加载配置。
    ENV=prod pytest tests/  # 运行生产环境测试
    
  3. 测试数据清理

    • 方案:在 fixture 中实现后置清理逻辑。
    @pytest.fixture
    def temp_user(api_client):user_id = api_client.create_user()yield user_idapi_client.delete_user(user_id)
    

六、总结

通过以下步骤可快速生成自动化测试用例:

  1. 解析文档 → 2. 封装接口 → 3. 数据驱动 → 4. 模板化用例 → 5. 集成报告
    关键点
  • 模块化设计(API/UI 分离)
  • 数据工厂动态生成参数
  • 利用 Allure 增强报告可读性
  • 使用 Fixture 管理依赖和资源

扩展方向

  • 集成 CI/CD(如 Jenkins、GitHub Actions)
  • 添加性能测试(Locust)
  • 实现智能断言(JSON Schema 校验)
http://www.dtcms.com/wzjs/521169.html

相关文章:

  • 小程序端aso优化服务站
  • 制作公司网站设计要求汕头seo推广优化
  • 互联网站建设 天津湖南优化公司
  • 重庆100强企业名单seo优化培训学校
  • 建设网站怎么到工商备案郑州推广优化公司
  • 高端品牌网站建设服务色盲测试图第六版及答案大全
  • 全面的手机网站建设百度口碑
  • 淮安网站建设案例接外包网站
  • 张掖做网站公司aso排名优化知识
  • 西安网站建设成功建设线上营销手段有哪些
  • 软文营销的特点厦门关键词排名seo
  • 怎样下载建设银行信用卡网站成都今天宣布的最新疫情消息
  • 新疆乌鲁木齐哪家做网站好百度下载安装2019
  • 以网站建设为开题报告宁波网络推广方法
  • 大鹏网站建设在线网页服务器
  • 吴江公司网站建设电话江西网络推广seo
  • wordpress 轮播开发哈尔滨优化调整人员流动管理
  • centos wordpress 优化常德seo招聘
  • 在线做ppt模板下载网站谷歌广告平台
  • 优化网站推广教程排名微商怎样让客源主动加你
  • p2p网上贷款网站建设方案.docx附近有没有学电脑培训的
  • 包头建设网站搜索引擎广告的优缺点
  • 临沂做网站建设的公司哪家好宁波最好的seo外包
  • 特种设备作业人员证查询seo专员工资待遇
  • 网站挂服务器后图片不显示互联网推广营销方案
  • 济南教育平台网站建设免费个人主页网站
  • 如何销售网站开发苹果看国外新闻的app
  • 长春网站开发公司搜狗识图
  • 泰安网站建设哪家快百度提问
  • 广西城乡建设委员会网站百度合伙人答题兼职赚钱