前言
想完成一份教程,类似于虫师的RF自动化教程之类的,作为自己对以往工作经验的总结。
这份教程面向的群体是测试工程师,主要内容是开发一个工具平台,针对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
]
四、功能逻辑实现
我们直接通过 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)
我们用基于函数视图的@api_view装饰器来实现这个restful风格的api
from rest_framework.decorators import api_view
from rest_framework.response import Response
from .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)
将页面逻辑注册在 apps/utilsapp/urls.py中
from django.urls import path
from apps.utilsapp import views
urlpatterns = [
path('redis/', views.redis_value, name='redis'),
]
然后将上面的ur注册在TestPlatform/urls.py中,
urlpatterns = [
path('admin/', admin.site.urls),
# 工具的Url
path('api/utils/',include('utilsapp.urls'))
]
五、启动项目,调试接口
启动项目:
python manage.py runserver
设置redis数据
查询redis数据
该项目的第一个功能就实现了。
(这里没有将redis的连接信息等做成可配置,后续会慢慢将一些细节的东西完善)
六、总结
目前实现了一个很简答的功能,希望能帮你建立信心,后续我们会逐步完善所用功能,完成后台开发之后,再进行前端页面的开发。
如果你有想实现的功能欢迎提交
本项目的代码已上传git
https://github.com/627886474/TestPlatform(本章内容可切换至 --framework分支 )
如果你觉得项目对你有帮助,可以关注一下微信公众号,持续分享干货