接口测试平台开发之接口开发(login、logout、parameter、register)

项目前端代码starrysky在D:\api_platform下,先从登录开始开发
第一步:去earthMjz这个项目的example目录下找到views.py文件,拷贝LoginView这个类到sksystem下views.py文件,再拷贝example目录下views.py里的一堆导入信息到views.py文件,views.py里的代码如下图:

第二步:然后在sksystem下新建一个forms.py文件,然后去example目录下找到forms.py文件,拷贝LoginForm到sksystem下的forms.py文件里,然后再拷贝example目录下forms.py里的一堆导入信息到forms.py文件,forms.py里的代码如下图:

第三步:配置sksystem目录下的urls.py文件,新增代码path('login', views.LoginView.as_view())
第四步:去earth下的settings.py文件里配置redis,更改成牛牛的数据库ip和密码,如下图:

然后在修改一下NO_LOGIN_LIST,加一个api,如下图:

接下来用postman去请求登录接口,post方式,路径是/api/login,先不传usernamepassword,点击Send按钮,提示如下图:

然后传入usernamepassword,报如下错误:

于是把密码53f56dd793a46bb396893b20c29741ad放到数据库里,再次请求,如下图:

登录成功后去redis里找到该token,完全一致,接下来实现退出,拷贝example下views.py里的LogoutView类里的代码到sksystem下的views.py文件里,如下图:

然后在urls.py文件里新增path('logout', views.LogoutView.as_view()),接下来通过postman请求退出接口,配置如下图:

然后去redis里看之前登录成功的token被删除了,退出逻辑实现了
登录完成后写全局参数的接口,代码对接到平台上,首先在views.py里定义一个
ParameterView类,继承NbView,NbView里封装了五个类,BaseView, GetView, PostView, DeleteView, PutView,自动的实现了增删改查的功能,首先实现get请求,获取BaseView类中的前四个字段search_fieldfilter_fieldmodel_classform_class,全局参数的接口如下图:

修改model_class = models.Parameter,然后在forms.py里添加一个ParameterForm类,继承ModelForm和ExtendForm,然后去example下的forms.py中复制

class Meta:
model = models.Author
exclude = ['is_delete']

然后把Author改成Parameter,ParameterForm类里的代码如下图:

然后修改form_class = forms.ParameterForm,views.py里的代码如下图:

然后配置url,urls.py里新增的代码如下图:

settings.py文件里的NO_LOGIN_LIST里有几个路径,这些路径不需要登录,不需要校验token,'api'在NO_LOGIN_LIST里,因此不需要传token,配置请求如下图:

把NO_LOGIN_LIST里的'api'去掉,再请求全局参数的时候就要求校验token,如下图:

接下来调一下登录接口获取token,登录成功后去redis里看,成功生成了token,然后再请求全局参数,请求成功如下图:

 

接下来进入前端,退出后用手机号(13800138000)和密码(123456)进行登录,登录成功后进入星瀚的页面,点击2.0版本,可以看到6个接口:全局参数项目管理接口管理用例管理用例集合测试报告,全局参数接口继承了NbView,具有增删改查的功能,由于查没有根据哪个字段查,所以修改search_field = ['name'],先把starrysky的服务停掉,点击全局参数,再点击添加按钮,在弹出页面里输入如下图,点击确定按钮,报错:

 

先通过post把增加、删除、修改和模糊查询实现了,如下图:

用postman请求可以增加成功,postman的配置如下图:

删除也OK了,id=3的is_delete变成0了

修改的也OK了,配置如下图:

接下来测试查询,因为之前设置过search_field = ['name'],配置如下图:

这个报错的解决方式是在earth的middlewares.py里的PutMethodMiddleware类里增加一行,如下图:

然后在前端页面2.0版本全局参数里新增成功、修改也ok、查询也没有问题,删除也实现了,接下来把注册接口开发一下,点击注册按钮的时候,报如下错误:

首先配一下url,在urls.py里新增path('register', views.RegisterView.as_view()),然后在forms.py里新增如下图:

注册不需要删改查,继承BaseViewPostView就行,但是和PostView里的代码逻辑不太一样,于是把PostView里的post方法拷过来如下图:

因为还继承了BaseView,但是不涉及查询,所以把去BaseView里把model_class = Noneform_class = None拷过来,接下来修改代码,把model_class = models.User,因为注册和User表有关联,还要定义一个RegisterForm在forms.py文件里,RegisterForm的代码如下图:

然后修改form_class = forms.RegisterForm,到这里BaseView配置完成了,修改后的代码如下图:

打印出的注册信息及密码分别如下:

{'phone': '12320202022', 'email': '12320202022@163.com', 'password': '123456', 'username': 'dsx'}
123456

接下来将密码加密写入到数据库中,中间还得经过一步,更新原有的cleaned_data,post方法中修改如下图:

将最终的注册信息写入到数据库中,代码如下图:

点击注册按钮,提示注册成功,跳转到登录页面,在数据库中看到注册成功的信息,如下图:

注册接口开发成功,注册的phoneemailpasswordusername成功插到数据库里,如果phone和email已经注册过,会报如下的错误:

posted @ 2020-03-16 22:45  laosun0204  阅读(665)  评论(0编辑  收藏  举报