内容管理系统测试实战

使用django和restframework开发接口

使用postman测试接口

使用unittest和requests模块测试接口

目录

 Django安装​

 Django Rest Framework​

创建API应用

数据库迁移

 创建超级管理员​

 启动Server​​

 配置路由

Swagger接口文档生成 

接口测试思路

 使用unittest测试接口


Django简介

 Django安装

django要在2.1.8 在这个版本下,swagger文档才能接入django

(我操作的时候swagger没有成功打开,后续又换回了django4.0banben)

指定django版本进行安装

 Django Rest Framework

它是基于Django的,帮助我们快速开发符合restful规范的接口框架,它主要适用于前后端分离项目。
官方文档一:https://www.django.cn/course/show-20.html
官方文档二:https://www.django-rest-framework.org/api-guide/serializers/

 

 这三个文件为django框架做准备

 

 restful风格,域名接口更清晰,不管什么请求,接口一致。

创建API应用

 

 API应用是接口应用

 

 

 

 

 

数据库迁移

 创建超级管理员

 启动Server

http://127.0.0.1:8000/

访问8000端口,可以打开django网站,说明django项目运行成功

 修改端口

 

 http://127.0.0.1:8000/admin/login/?next=/admin/

 

 

 serializers.py文件输入如下内容:

from django.contrib.auth.models import  User,Group
from rest_framework import serializers

class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model=User
        fields={'url','username','email','groups'}
class GroupSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model=Group
        fields={'url','name'}
        

 

views.py文件代码 

from django.shortcuts import render
from django.contrib.auth.models import User,Group
from rest_framework import  viewsets
from  api.serializers import UserSerializer,GroupSerializer

# Create your views here.
class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer
#viewsets是一个文件 ModelViewSet是一个类



class GroupViewSet(viewsets.ModelViewSet):
    queryset = Group.objects.all()
    serializer_class = GroupSerializer

 配置路由

urls.py文件代码


from django.contrib import admin
from django.urls import path
from  django.conf.urls import include
from rest_framework import routers
from api import views

router=routers.DefaultRouter()
#router是类DefaultRouter的实例
router.register(r'users',views.UserViewSet)
router.register(r'groups',views.GroupViewSet)

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include(router.urls)),
    path('api-auth/',include('rest_framework.urls',namespace='rest_framework'))
]

运行python 

 打开浏览器

Swagger接口文档生成 

(这步我操作失败,但是不影响接口测试)

 

 

 

 

 

这里我没有docs/有报错 

接口测试思路

 

 使用postman对查询用户接口进行访问 http://127.0.0.1:8000/users

 需要设置basic auth,为创建的超级管理员账号和密码

通过接口可以查到所有用户。

使用post请求创建接口 http://127.0.0.1:8000/users/

在body里填写参数

注意users后面要加上/

这里创建了一个用户。

 

 删除用户

 使用unittest测试接口

在api目录下创建test_unittest文件

import requests
import unittest
class UserTest(unittest.TestCase):
    def setUp(self):
        self.base_url='http://127.0.0.1:8000/users'
        self.auth=('yangyl13','xxxx')
    def test_get_user(self):
        r=requests.get(self.base_url+'/4/',auth=self.auth)
        result=r.json()
        self.assertEqual(result['username'],'13261166388')
        self.assertEqual(result['email'], 'Iloveyou@163.com')
    def test_add_user(self):
        form_data={'username':'w1','email':'w1@163.com'}
        r=requests.post(self.base_url+'/',data=form_data,auth=self.auth)
        result=r.json()
        self.assertEqual(result['username'],'w1')


    def test_delete_user(self):
        r=requests.delete(self.base_url+'/3/',auth=self.auth)
        self.assertEqual(r.status_code,204)

    def test_no_auth(self):
        r=requests.get(self.base_url)
        result=r.json()
        self.assertEqual(result['detail'],'Authentication credentials were not provided.')


if __name__ == '__main__':
    unittest.main()

 执行文件,可以看到成功和失败的用例数。

可以再创建一个类,写group相关测试。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值