iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用Django+Pytest搭建在线自动化测试平台
  • 915
分享到

使用Django+Pytest搭建在线自动化测试平台

2024-04-02 19:04:59 915人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录一、测试平台:二、搭建过程2.1 使用Django搭建一个WEB系统2.2 搭建测试框架三、平台如何管理总结一、测试平台: 解决分散用例执行方式,提供统一测试用例执行过程、用例管

一、测试平台:

解决分散用例执行方式,提供统一测试用例执行过程、用例管理、测试报告

主要是基于:

    fastapi+vue.js
    djanGo+Vue.js
    django

二、搭建过程

2.1 使用django搭建一个web系统

1. 创建项目

  django-admin startproject TestPlatfORM

创建python的包,测试平台的配置和功能

2. 创建app

django-admin startapp web

创建Python的包,具体的功能代码

(1)在TestPlatform/Web/apps.py中注册app

from django.apps import AppConfig
class WebConfig(AppConfig):
    # default_auto_field = 'django.db.models.BigAutoField'
    name = 'Web'
    verbose_name = "自动化测试"

(2) 在TestPlatform/TestPlatform/settings.py中进行相关设置

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'Web.apps.WebConfig'
]

LANGUAGE_CODE = 'zh-hans'# 设置中文
TIME_ZONE = 'Asia/Shanghai'# 设置时区

USE_I18N = True

USE_L10N = True

USE_TZ = False

MEDIA_ROOT = 'uploads/'
MEDIA_URL = 'uploads/'

(3)编辑TestPlatform/TestPlatform/urls.py文件

from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path

# 定义Http路由,是web系统的入口点
urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + [
    path('', admin.site.urls),
]

(4)启动测试平台

     python manage.py runserver

2.2 搭建测试框架

1. 定义model

model驱动开发

import pathlib
from django.db import models

# 定义model
# 抽象化
from django.utils import html


class Task(models.Model):
    name = models.CharField("用例名称", max_length=20)
    case = models.FileField("用例文件", upload_to='tests/%Y_%m_%d_%H_%M_%S/')
    status = models.IntegerField(
        "测试状态", default=-1, choices=[
            (-1, '初始化'),
            (0, '马上执行'),
            (1, '正在执行测试用例'),
            (2, '正在生成测试报告'),
            (3, '执行完毕'),
        ]
    )
    run_datatime = models.DateTimeField(
        "最近执行时间", null=True, blank=True
    )

    class Meta:
        verbose_name_plural = verbose_name = "测试任务"

    def __str__(self):
        return self.name

    def get_url(self, _type):
        """生成报告或者测试日志的Url"""
        if self.case and self.status == 3:  # 执行完毕
            case_path = pathlib.PurePosixPath(str(self.case))
            root_path = pathlib.PurePosixPath('/uploads')

            if _type == 'report':  # 报告的url
                report_path = root_path / case_path.parent / "report/index.html"
            elif _type == 'log':  # 日志的url
                report_path = root_path / case_path.parent / "pytest.txt"
            else:
                report_path = '_'

            return html.format_html(f"<a href='{report_path}' target='_blank'> 点击查看</a>")
        else:
            return "-"

2. 定义界面

from django.contrib import admin
from .models import Task


# ReGISter your models here.

@admin.register(Task)
class TaskAdmin(admin.ModelAdmin):
    # 决定了model 怎么显示
    list_display = ("id", "name", "status", "run_datatime",
                    "report_url", "log_url",
                    )
    # 要显示的字段

    readonly_fields = ('run_datatime',)

    def report_url(self, obj):
        return obj.get_url('report')

    report_url.short_description = '测试报告'

    def log_url(self, obj):
        return obj.get_url('url')

    log_url.short_description = '执行日志'

3. 执行数据库迁移

   python manage.py makemigrations
   python manage.py migrate

三、平台如何管理

1. 创建管理员账号

   python manage.py createsuperuser

  用户名:admin

  邮箱:admin@qq.com

  密码:admin

2. 调整页面显示

3. 执行测试用例

在models.py文件中调用pytest,pytest执行yaml文件(关键字驱动)

import pathlib
from datetime import datetime

from django.db import models

# 定义model
# 抽象化
from django.utils import html


class Task(models.Model):
    name = models.CharField("用例名称", max_length=20)
    case = models.FileField("用例文件", upload_to='tests/%Y_%m_%d_%H_%M_%S/')
    status = models.IntegerField(
        "测试状态", default=-1, choices=[
            (-1, '初始化'),
            (0, '马上执行'),
            (1, '正在执行测试用例'),
            (2, '正在生成测试报告'),
            (3, '执行完毕'),
        ]
    )
    run_datatime = models.DateTimeField(
        "最近执行时间", null=True, blank=True
    )

    class Meta:
        verbose_name_plural = verbose_name = "测试任务"

    def __str__(self):
        return self.name

    def get_url(self, _type):
        """生成报告或者测试日志的Url"""
        if self.case and self.status == 3:  # 执行完毕
            case_path = pathlib.PurePosixPath(str(self.case))
            root_path = pathlib.PurePosixPath('/uploads')

            if _type == 'report':  # 报告的url
                report_path = root_path / case_path.parent / "report/index.html"
            elif _type == 'log':  # 日志的url
                report_path = root_path / case_path.parent / "pytest.txt"
            else:
                report_path = '_'

            return html.format_html(f"<a href='{report_path}' target='_blank'> 点击查看</a>")
        else:
            return "-"

    def save(self, *args, **kwargs):
        super().save(*args, **kwargs)

        # 判断是否需要启动测试框架,执行测试用例

        if self.status == 0:
            self.status = 1  # 修改状态:正在执行
            self.run_datatime = datetime.datetime.now()
            super().save()

            # 启动测试框架
            import pytest

            pytest.main(self.case.path)  # 执行指定的测试用例文件

            self.status = 3  # 修改状态:执行完毕
            self.run_datatime = datetime.datetime.now()
            super().save()

总结

到此这篇关于使用Django+Pytest搭建在线自动化测试平台的文章就介绍到这了,更多相关Django+Pytest在线自动化测试平台内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 使用Django+Pytest搭建在线自动化测试平台

本文链接: https://www.lsjlt.com/news/119343.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用Django+Pytest搭建在线自动化测试平台
    目录一、测试平台:二、搭建过程2.1 使用django搭建一个web系统2.2 搭建测试框架三、平台如何管理总结一、测试平台: 解决分散用例执行方式,提供统一测试用例执行过程、用例管...
    99+
    2024-04-02
  • Pytest接口自动化测试框架搭建模板
    auto_api_test 开发环境: Pycharm 开发语言&版本: python3.7.8 测试框架: Pytest、测试报告: Allure 项目源码Git地址 项...
    99+
    2024-04-02
  • Pytest自动化测试框架的使用
    目录Pytest和Unittest测试框架的区别?Pytest 安装Pytest 示例标记固件(Fixture)预处理和后处理作用域自动执行参数化总结Pytest和Unittest测...
    99+
    2023-03-19
    Pytest 自动化测试框架 Pytest 自动化
  • pytest接口自动化测试框架搭建的全过程
    目录一. 背景二. 基础环境三. 项目结构四、框架解析4.1 接口数据文件处理4.2 封装测试工具类4.3 测试用例代码编写4.4 测试用例运行生成报告 ​​​​​​​总结一. 背景...
    99+
    2024-04-02
  • Pytest自动化测试框架如何使用
    这篇文章主要讲解了“Pytest自动化测试框架如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Pytest自动化测试框架如何使用”吧!Pytest和Unittest测试框架的区别?如何...
    99+
    2023-07-05
  • 使用Django+Vue+Docker怎么搭建一个接口测试平台
    本篇文章为大家展示了使用Django+Vue+Docker怎么搭建一个接口测试平台,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。清理或卸载旧版本:sudo yum remove&...
    99+
    2023-06-14
  • python使用pytest接口自动化测试的使用
    简单的设计思路 利用pytest对一个接口进行各种场景测试并且断言验证 配置文件独立开来(conf文件),实现不同环境下只需要改环境配置即可 测试的场景读...
    99+
    2024-04-02
  • 详解Django+Vue+Docker搭建接口测试平台实战
    一. 开头说两句 大家好,我叫林宗霖,是一位测试工程师,也是全栈测开训练营中的一名学员。 在跟着训练营学习完Docker容器技术系列的课程后,理所应当需要通过实操来进行熟悉巩固。正好...
    99+
    2024-04-02
  • 自动化测试 selenium 环境搭建
    做 web 项目,测试是无法避免的。对于某些特定功能,采用单元测试就行。但如果想对网站进行整体测试,人工点击测试可行但有点累,如果能借助自动化测试工具就更好了。selenium 就是一款能满足这样要求的测试工具,selenium 是一款用...
    99+
    2023-01-30
    环境 测试 selenium
  • Pytest接口自动化测试框架搭建模板的示例分析
    小编给大家分享一下Pytest接口自动化测试框架搭建模板的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!auto_api_test开发环境: Pychar...
    99+
    2023-06-14
  • 移动端自动化测试框架搭建
    搭建框架的几点思考: 需要框架实现什么功能 前期需要做数据与业务分离,方便维护 测试用例集管理要方便,便于异常时重新Run单条用例 用例设计需要尽可能简单,多提供公共方法     目前设计框架如下图:    CommonLibr...
    99+
    2023-01-30
    框架 测试
  • Python 做自动化测试环境搭建
    https://blog.csdn.net/GitChat/article/details/79081187   一、Selenium 环境部署 1. window 环境部署 1.1 当前环境 Win10 64 位系统;Python3.6...
    99+
    2023-01-31
    环境 测试 Python
  • pytest自动化测试数据驱动yaml/excel/csv/json怎么使用
    这篇“pytest自动化测试数据驱动yaml/excel/csv/json怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这...
    99+
    2023-07-02
  • 怎么在Docker环境下搭建测试管理平台
    这篇文章主要为大家展示了“怎么在Docker环境下搭建测试管理平台”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么在Docker环境下搭建测试管理平台”这篇文章吧。第一部分:环境准备首先需要在...
    99+
    2023-06-05
  • 教你用Python+selenium搭建自动化测试环境
    一、环境搭建 1、安装python+pycharm软件 。python安装网址官网:https://www.python.org/about/ 根据自己的电脑系统选择最新版本 下载到...
    99+
    2024-04-02
  • 实用测试技能分享:jmeter+Jenkins性能测试自动化搭建
    这阶段有幸接手了公司新产品的测试,所以一直都很忙。后台收到一些同学的私信,想多了解下性能测试,正好闲暇之余,终于有时间总结了一些性能测试实践经验和测试过程,就跟大家聊一聊。性能测试用来保证产品发布后系统的性能满足用户需求,在软件质量保证中起...
    99+
    2023-06-05
  • pytest自动化测试中的fixture的声明和调用
    目录1. fixture的声明2. fixture的调用2.1 fixture的调用方式2.1.1 使用fixturename2.1.2 使用@pytest.mark.usefixt...
    99+
    2024-04-02
  • 自动化测试框架pytest的Fixture固件怎么调用
    本篇内容介绍了“自动化测试框架pytest的Fixture固件怎么调用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是固件Fixture...
    99+
    2023-07-05
  • 第三代api自动化测试框架使用教程(pytest+allure+sql+yaml)
    使用教程 一、配置1、环境配置2、框架配置3、启动入口 二、用例编写1、用例模板2、参数依赖写法2、函数(方法插件)写法3、接口上传文件和表单参数4、接口上传json参数5、接口无数据填写...
    99+
    2023-09-07
    sql 自动化 python
  • Android+Appium自动化测试环境搭建及实操
    1、Appium简介1.1 Appium概念1.2 Appium工作原理 2、Appium Server环境搭建2.1 Java JDK2.1.1 下载JDK2.1.2 运行exe安装...
    99+
    2023-10-24
    appium android 自动化测试 环境搭建 调试
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作