帮你搭建一个测试平台(快速上手篇)

211 阅读3分钟

帮你搭建一个测试平台(快速上手)

前言

自动化测试已成为软件开发过程中不可或缺的一部分。在我最近新入职的公司中,我发现大部分业务同事并不熟悉代码或者抓包技术。因此,他们更希望能够通过简单的点击操作来运行自动化测试,并查看测试报告。传统的本地测试方式已经无法满足业务同事的需求,他们需要的是一个方便、可靠的自动化测试平台。

在接下来的系列文章中,我将带领大家共同探索如何从零开始搭建一个平台化的自动化测试执行功能。我们将深入探讨自动化测试流程的全貌,分享其中的技术细节、挑战和解决方案。

在该平台的构建中,后端将采用 Python 的 FastAPI 框架和 pytest 测试框架,而前端将采用 Vue 框架结合 ElementUI 组件库。此外,我们还将利用 Docker 进行环境隔离,以及使用 MinIO 进行测试报告的存储。通过这个系列文章,我将带领大家探索如何利用这些技术构建一个完善的自动化测试平台。

希望这个系列能够为大家带来启发和帮助。如果您有任何建议或者想法,欢迎随时分享!

搭建一个简单的fastapi程序

今天我们先体验一下快速搭建一个fastapi程序

项目架构

后端采用的是fastapi框架,项目结构如下

image.png

文件夹可以先建起来,后面的慢慢增加,alembic相关的可以先不要

安装依赖

我们先在requirements.txt复制以下内容:

alembic==1.8.0
annotated-types==0.6.0
anyio==3.7.1
APScheduler==3.10.4
certifi==2023.11.17
cffi==1.16.0
charset-normalizer==3.3.2
click==8.1.7
colorama==0.4.6
cryptography==41.0.7
docker==7.0.0
fastapi==0.105.0
fastapi-pagination==0.12.14
greenlet==3.0.2
h11==0.14.0
idna==3.6
iniconfig==2.0.0
jsonpath==0.82.2
Mako==1.3.0
MarkupSafe==2.1.3
mysql-connector-python==8.2.0
packaging==23.2
pluggy==1.3.0
protobuf==4.21.12
pycparser==2.21
pydantic==2.5.2
pydantic-settings==2.1.0
pydantic_core==2.14.5
PyJWT==2.8.0
PyMySQL==1.1.0
pytest==7.4.4
python-dotenv==1.0.0
pytz==2023.3.post1
pywin32==306
requests==2.31.0
six==1.16.0
sniffio==1.3.0
SQLAlchemy==1.4.46
starlette==0.27.0
typing_extensions==4.9.0
tzdata==2023.4
tzlocal==5.2
urllib3==2.1.0
uvicorn==0.24.0.post1

这里都是我们项目需要安装的依赖,保存了以后进入文件根目录,输入安装指令pip install -r requirements.txt -i mirrors.aliyun.com/pypi/simple

image.png

编写main.py

然后看main.py

from fastapi import FastAPI
import uvicorn

app = FastAPI()

if __name__ == '__main__':
    uvicorn.run(app, host="0.0.0.0", port=8000)

粘贴了以后,需要在终端进入当前文件夹目录下,先下载环境,我已经把所有需要安装的包做成了txt文档,大家下载后就可以

uvicorn main:app --reload

然后出现以下打印就ok了

image.png

编写接口函数

然后在api目录下新建一个Base.py的文件,复制粘贴一下我的代码就行

from fastapi import APIRouter

ApiRouter = APIRouter(prefix="/v1")

@ApiRouter.get("/home")
def home(num:int):
    """
    Home page
    """
    return {"num": num}

然后按一下ctrl + s(保存),它会自动重载

在core目录下新建一个Router.py,代码如下

from fastapi import APIRouter
from api.Base import ApiRouter

ALLROUTER = APIRouter()

ALLROUTER.include_router(ApiRouter)

最后我们在main.py里引用一下这个ALLROUTER,main.py如下:

from fastapi import FastAPI
from core.Router import ALLROUTER
import uvicorn


app = FastAPI()

app.include_router(ALLROUTER)




if __name__ == '__main__':

    uvicorn.run(app, host="0.0.0.0", port=8000)

然后再ctrl+s,保存一下,它会自动重载,此时你访问浏览器 http://127.0.0.1:8000/docs 或者http://127.0.0.1:8000/docs#/ 就会出现你的接口文档:

image.png

这样你的程序就起来了! 今天的小试牛刀先到这里,然后下一篇会介绍写一个注册用户的接口