自动化工具 HTTP 接口测试平台(基于 python 语言开发)

XiangjunZhao · 2021年03月24日 · 最后由 XiangjunZhao 回复于 2021年04月12日 · 5700 次阅读

QAPlatform

1、介绍

  • 该系统是 HTTP 接口自动化测试平台,采用前后端分离开发,QAPlatform 是该系统的后端程序,QAPlatformWed 是该系统的前端程序。作者已将前端程序进行了打包,dist 目录即为前端打包程序。
  • 操作手册地址(持续更新中……)https://gitee.com/xiangjunzhao/QAPlatformDocs
  • 平台登录信息

    • 账号:13612345678
    • 密码:123456
  • 交流方式

    • QQ 群:112967924
  • 详情请移步:https://gitee.com/xiangjunzhao/QAPlatform

2、软件架构

QAPlatform 使用 Python3 进行开发,主要选用了 django+django rest framework(简称:drf)+pymysql+redis+celery+uwsgi 框架组合。

  • django+drf:提供 restful 风格的 API 接口服务
  • pymsql:提供 mysql 数据库持久化功能
  • redis:提供数据缓存功能
  • celery:提供定时任务及异步任务功能
  • requests:提供 http 接口测试功能

3、部署教程

本次部署环境为 CentOS7 操作系统。Windows 操作系统,请参阅 README.windows.md 文档。

本项目采用 docker+mysql+redis+nginx+uwsgi 进行部署;其中 redis、mysql、nginx 使用了 docker 部署,用户可以使用自己熟悉的方式安装 redis、mysql、nginx。

3.1、CentOS7 安装 docker

yum install -y epel-release docker-io

3.2、docker 安装 redis

docker run -d --name redis -p 6379:6379 --restart=always docker.io/redis:latest

3.3、docker 安装 mysql

安装mysql数据库
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --restart=always -v /var/lib/mysql:/var/lib/mysql docker.io/mysql:5.7.28

3.4、docker 安装 nginx,部署前端程序

docker run -d --name nginx -p 80:80 --restart=always docker.io/nginx

# 注意:结合部署环境的情况,修改nginx配置如下
# 1、修改QAPlatform部署的服务器IP以及服务监听的端口
# 示例:系统部署的服务器ip为172.17.0.1;uwsgi.ini设置的程序端口为8000,那么upstream QAPlatform配置如下代码所示
upstream QAPlatform {
    # ip使用部署服务器的ip或域名,端口与uwsgi.ini设置的端口保持一致
    server 172.17.0.1:8000;
}

# 2、修改nginx监听的端口,默认监听的是80端口
# 示例:nginx监听的端口为80,那么server listen配置如下代码所示
server {
    listen 80;
}

# 3、将 nginx配置文件 目录下的nginx-socket.conf更名为nginx.conf;再将nginx.conf拷贝到nginx容器的/etc/nginx目录中
docker cp ./nginx配置文件/nginx.conf nginx:/etc/nginx

# 4、将已打包的前端程序dist目录中的文件拷贝到nginx容器的/home/QAPlatformWeb目录中
docker cp ./dist nginx:/home/QAPlatformWeb

# 5、将nginx服务重新加载
docker exec nginx nginx -s reload

3.5、安装 Python、Pip 环境,创建虚拟环境

一、安装Python环境
# 1、安装依赖
sudo yum install -y libffi-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel zlib gcc make

# 2、下载Python程序
# Python包地址:https://www.python.org/ftp/python/
wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz

# 3、解压Python-3.8.5.tgz
tar -zxvf Python-3.8.5.tgz

# 4、编译安装
sudo mkdir /usr/local/python3.8.5
cd Python-3.8.5
sudo ./configure --prefix=/usr/local/python3.8.5
sudo make && sudo make install

# 5、建立软链接
sudo ln -s /usr/local/python3.8.5/bin/python3 /usr/bin/python3
sudo ln -s /usr/local/python3.8.5/bin/pip3 /usr/bin/pip3

# 6、验证安装
python3 -V
pip3 -V

二、安装虚拟环境、创建虚拟环境
# 1、安装虚拟环境virtualenv
yum install -y python-virtualenv

# 2、创建虚拟环境
# 在项目根目录创建虚拟环境
virtualenv -p python3 venv

# 3、激活虚拟环境
source ./venv/bin/activate

# 4、退出虚拟环境
deactivate

3.6、安装项目依赖

# 在激活的虚拟环境中安装项目依赖
# 在requirements.txt所在目录中执行以下命令
pip install -r requirements.txt

3.7、迁移数据库,导入初始数据

# 创建数据库
# 1、进入mysql docker容器
docker exec -it mysql /bin/bash
# 2、登录mysql数据库
mysql -uroot -proot
# 3、创建QAPlatform数据库
CREATE DATABASE IF NOT EXISTS QAPlatform DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
# 注:本项目的数据库名为:QAPlatform,用户名为:root,密码为:root;用户可根据实际需求,创建相应的数据库以及用户名和密码,并且在项目的QAPlatform/settings.py文件中修改数据库配置,保持一致即可。

# 执行迁移数据库,在manage.py所在目录执行以下命令
python manage.py makemigrations
python manage.py migrate

# 数据库迁移成功生成表后,执行 sql 文件夹中的脚本,导入初始数据
# 执行顺序:basic_user.sql、basic_role.sql、basic_user_roles.sql、basic_markdown.sql、basic_permission.sql

4、使用说明

4.1、启动、停止 uwsgi 服务

# 启动服务,参数-d代表后台运行
uwsgi -d --ini uwsgi.ini

# 重新加载服务
uwsgi --reload uwsgi.pid

# 停止服务
uwsgi --stop uwsgi.pid

4.2、启动定时服务 celery

# 在项目QAPlatform目录中执行以下命令,启动celery定时服务
nohup celery worker -A QAPlatform --loglevel=info --pool=solo --pidfile=celery-worker.pid --logfile=./logs/celery-worker.log &

4.3、启动定时调度服务 django_celery_beat

# 在项目QAPlatform目录中执行以下命令,启动celery定时调度服务
nohup celery beat -A QAPlatform --loglevel=info --scheduler django_celery_beat.schedulers:DatabaseScheduler --pidfile=celery-beat.pid --logfile=./logs/celery-beat.log &

5、前端界面展示

5.1、定时任务服务

  • 5.1.1、Crontab 日程列表
    Crontab日程列表
  • 5.1.2、添加 Crontab
    添加Crontab
  • 5.1.3、定时任务列表
    定时任务列表
  • 5.1.4、添加定时任务
    添加定时任务

5.2、接口自动化测试

  • 5.2.1、环境列表

    环境列表

  • 5.2.2、创建环境

    创建环境

  • 5.2.3、项目列表

    项目列表

  • 5.2.4、编辑项目

    编辑项目

  • 5.2.5、模块列表

    模块列表

  • 5.2.6、接口列表

    接口列表

  • 5.2.7、创建接口—基础信息

    创建接口—基础信息

  • 5.2.8、创建接口—Headers 参数定义

    创建接口—Headers参数定义

  • 5.2.9、创建接口—Body 参数定义

    创建接口—Body参数定义

  • 5.2.10、创建接口—用例期望结果定义

    创建接口—用例期望结果定义

  • 5.2.11、EXCEL 导入接口和用例模板

    EXCEL导入接口和用例模板

  • 5.2.12、EXCEL 导入接口和用例

    EXCEL导入接口和用例

  • 5.2.13、扩展方法列表

    扩展方法列表

  • 5.2.14、用例列表

    用例列表

  • 5.2.15、创建用例

    创建用例

  • 5.2.16、编辑调试用例—基础信息

    编辑调试用例—基础信息

  • 5.2.17、编辑调试用例—Headers 参数

    编辑调试用例—Headers参数

  • 5.2.18、编辑调试用例—Body 参数

    编辑调试用例—Body参数

  • 5.2.19、编辑调试用例—期望结果

    编辑调试用例—期望结果

  • 5.2.20、编辑调试用例—调试用例

    编辑调试用例—调试用例

  • 5.2.21、场景列表

    场景列表

  • 5.2.22、创建场景—基础信息

    创建场景—基础信息

  • 5.2.23、创建场景—全局参数配置

    创建场景—全局参数配置

  • 5.2.24、场景组织用例

    场景组织用例

  • 5.2.25、场景集列表

    场景集列表

  • 5.2.26、场景集组织场景

    场景集组织场景

  • 5.2.27、测试结果—用例结果列表

    测试结果—用例结果列表

  • 5.2.28、测试结果—用例结果详情

    测试结果—用例结果详情

  • 5.2.29、测试结果 - 场景结果列表

    测试结果-场景结果列表

  • 5.2.30、测试结果—场景结果详情

    测试结果—场景结果详情

  • 5.2.31、测试报表

    测试报表

  • 5.2.32、用例测试报告

    用例测试报告

  • 5.2.33、场景测试报告

    场景测试报告

  • 5.2.34、帮助文档

    帮助文档

共收到 7 条回复 时间 点赞

请问 redis 在项目中的应用是什么呢

主要是用于定时任务和异步任务

请帮忙把帖子顶上去

顶起来。。

Smile 回复

谢谢

请问这里是没用到单元测试框架?,对用例集的处理事用的 for 循环?

回复

没有用到单元测试框架,对用例集的处理是用的 for 循环

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册