前言
这份教程面向的群体是测试工程师,主要内容是开发一个工具平台,针对Dubbo接口的测试。如果你有其他的功能想完成,欢迎提交pr。
工具平台规划
在以往的工作经验中,测试工具平台一般用来构造测试数据,查询数据等以此来提高测试的效率。但是这种功能一般都是针对系统进行特定的开发,所以本平台主打Dubbo接口测试,以及一些通用功能进行开发。
技术栈:
- Django
- Django restframework
- Vue
- mysql
需要实现的功能:
- 入门redis相关功能
- 请求Dubbo接口
- 存储接口测试用例信息
- mysql 查询校验
开发环境准备
需要安装python3.6、pycharm、mysql5.7、redis、使用django3版本。这些环境的安装就不做具体的讲解了,直接百度就有详细的教程,我们直接进入开发阶段
redis增、删、查功能实现
一般在业务系统中,我们经常会用到redis缓存,我们可以自己搭建一个服务,来对redis进行操作。用一个简单,实用的功能来建立你的自信心。
一、新建项目
使用django自带的命令新建项目 :
django-admin startproject TestPlatform
二、新建APP
新建一个apps 的文件夹,使用Django自带的命令创建应用,然后将应用移至apps下
python manage.py startapp utilsapp
三、引入Django rest framework
因为本项目使用Django rest framework开发,需要先下载相关依赖
pip install -i https://pypi.douban.com/simple/ djangorestframework
打开settings.py文件
#让django服务能读取到apps中的应用sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', #注册drf 'utilsapp.apps.UtilsappConfig' #注册新建的app]1234567891011121314
四、功能逻辑实现
我们直接通过 redis 包来实现redis 增,删,查 功能
class PyRedis: def __init__(self): self.host = '127.0.0.1' self.port = '6379' self.db = 0 pool = redis.ConnectionPool(host=self.host, port=self.port,db=self.db) self.conn = redis.Redis(connection_pool=pool) def set_key(self, key, value): try: return self.conn.set(name=key, value=value) except Exception as e: print(e) def get_key(self, key): try: return self.conn.get(key) except Exception as e: print(e) def del_key(self, key): try: return self.conn.delete(key) except Exception as e: print(e)12345678910111213141516171819202122232425
我们用基于函数视图的@api_view装饰器来实现这个restful风格的api
from rest_framework.decorators import api_viewfrom rest_framework.response import Responsefrom .common import PyRedis# Create your views here.@api_view(['GET', 'POST', 'DELETE'])def redis_value(request): if request.method == 'GET': value = PyRedis().get_key(request.data.get('redis_key')) res_data = {'redis_value': str(value)} return Response(res_data) elif request.method == 'POST': value = PyRedis().set_key(request.data.get('redis_key'), request.data.get('redis_value')) res_data = {'success': value} return Response(res_data) elif request.method == 'DELETE': value = PyRedis().del_key(request.data.get('redis_key')) res_data = {'success': value} return Response(res_data)123456789101112131415161718192021222324
将页面逻辑注册在 apps/utilsapp/urls.py中
from django.urls import pathfrom apps.utilsapp import viewsurlpatterns = [ path('redis/', views.redis_value, name='redis'),]12345678
然后将上面的ur注册在TestPlatform/urls.py中,
urlpatterns = [ path('admin/', admin.site.urls), # 工具的Url path('api/utils/',include('utilsapp.urls'))]123456
五、启动项目,调试接口
启动项目:
python manage.py runserver
设置redis数据
查询redis数据
该项目的第一个功能就实现了。
(这里没有将redis的连接信息等做成可配置,后续会慢慢将一些细节的东西完善)
六、总结
目前实现了一个很简答的功能,希望能帮你建立信心,后续我们会逐步完善所用功能,完成后台开发之后,再进行前端页面的开发。
如果你有想实现的功能欢迎提交
本项目的代码已上传git
https://github.com/627886474/TestPlatform(本章内容可切换至 --framework分支 )
如果你觉得这个项目对你有帮助,可以关注一下项目。