# 海浪自动化测试平台后端 **Repository Path**: hahaa1111/seawave ## Basic Information - **Project Name**: 海浪自动化测试平台后端 - **Description**: 终于有时间整理下自己了,一直想做而没有做的平台,希望能够坚持下来。 - **Primary Language**: Python - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 13 - **Created**: 2022-08-05 - **Last Updated**: 2022-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 海浪自动化测试平台(技术练习) ## 介绍 99999 **海浪:** 大海(软件产品)无风三尺浪(持续测试),测试在软件的开发过程中,也必须像海浪一样,持续存在,更要像海浪一样,随时都可以体现出大海的力量!用持续的力量推动和促进我们产品的质量前进。 自动化测试平台,是在《自动化平台测试开发》(作者邹辉)一书所提供的源代码基础上进行的二次开发。主要用于自动化测试技术的探索和研究。 目前阶段,做了如下改进: 1. 增加了mock服务功能,可以实现常用的http接口的简单返回,用于接口调试。 2. 将django自带的admin替换为django-suit后台。 3. 升级django为2.0。 4. 将celery升级,将后台展示改为django_celery_beat。 mock应用,是结合公司项目进行的定制化的开发,主要是短信服务的mock应用。 功能仅是做技术验证,还未达到项目实战需求,实战项目可以在该基础上进行必要扩展用于实现。 ## 页面展示 ![login](/login.jpg) ![souye](/souye.jpg) ![interface](/interface.jpg) ## 开发进展 ### 已完成功能 1. 已完成django-suit页面融合和定制 2. 单接口测试用例管理:添加,删除,修改,单条用例执行; 3. 融合了任务看板功能 4. 加入了mock服务功能,可以自动以API接口用于接口挡板,测试返回 ### 待实现的功能 1. 将实现的方法模块化 2. 实现app自动化测试 ### 后续实现的功能 1. 流程自动化测试 2. web自动化测试 3. 优化bug管理 4. 生成测试报告 5. 测试单管理 ## 平台规划 1. 使用VUE实现前后端分离,将现有的后台管理页面替换 2. 实现定时任务制定执行相关用例 3. 加入unittest测试相关的内容 4. 加入性能测试模块 5. 加入服务器性能指标监控模块 ## 技术栈 ### 部署 1. uwsgi 2. nginx ### 实现 1. **http协议:** 网络传输协议,熟悉浏览器和服务端数据交互方式,传输的内容 2. **html:** 熟悉html常用的组件只是,在web ui自动化测试中理解组件的属性,方法和样式等 3. **VUE:** 使用VUE,主要是为了熟悉前后端交互的实现方式 4. **python:** 主要是自动化测试过程中的逻辑实现,以及自动化测试过程的调度 5. **django:** python的web框架用于后台的管理 6. **webdriver:** Selenium的一个模块,提供了各种语言环境的API来支持更多控制权和编写符合标准软件开发实践的应用程序 7. **Appium:** 移动端的自动化测试工具 8. **Selenium:** 是一个浏览器自动化操作框架 9. **unittest:** python单元测试框架 ## 安装教程 1. **安装依赖:** ` pip install -r req.txt ` 2. **创建数据库:**`python manage.py makemigrations` 3. **生成数据库:**`python manage.py migrate` 4. **创建管理员用户:**`python manage.py createsuperuser` 5. **静态资源整理到static中(使用nginx部署,必须做):**`python manage.py collectstatic` 6. **安装nginx和uwsgi:**[参考文章](http://www.runoob.com/django/django-nginx-uwsgi.html) 如果nginx和uwsgi跑在同一台服务器上,使用unix套接字就可以了, unix套接字方式性能要高很多,但不能跨机器访问。 当nginx和uWSGI不在一台服务器上时,就需要使用TCP端口方式: 7. **安装redis组件**:`pip install -U "celery[redis]"` 8. **安装mysql5.7** 9. **安装redis** [安装指导](https://github.com/microsoftarchive/redis/releases) ## 使用说明 1. **启动nginx:**`nginx -s start` (nginx配置使用script目录下的autotest_nginx.conf) 2. **重启nginx:**`nginx -s reload` 3. **启动uwsgi:**`uwsgi --ini uwsgi.ini` 使用script目录下的uwsgi.ini 4. **停止uwsgi:**`kill -9 `cat /run/uwsgi.pid`` 5. **启动定时策略(在项目的根目录):** `$ celery -A [project-name] beat -l info -S django (celery -A autotest beat -l info -S django)` 6. **启动worker的健康状态监控工具:** ## 参与贡献 1. 张允冷 ## 技术积累 ![auto](/apps/budget/static/budget/images/autotest.jpeg) ![auto](/apps/budget/static/budget/images/bigdata.jpeg) ![auto](/apps/budget/static/budget/images/safe.jpeg) ## 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)