欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python接口自动化测试教程 -- 2. 用Django开发一个简单的POST | GET接口

程序员文章站 2022-07-14 22:26:14
...

要测试接口,首先我们要学会开发一个简单的接口,只有你知道了如何开发,你才能更好的进行测试,才能知道具体哪里最容易出错,从而大大的提高测试的准确性以及覆盖率。所以,我们以Django为例子,开发一个简单的接口,去了解一下原理。

Django介绍

Django是重量级全能型的web框架,功能完全,开放源代码,由Python语言编写。

  重点:一个大而全的框架,啥都替你考虑好了
  
Django官方文档

Django工作原理

  1. 用户通过浏览器请求一个页面

  2. 请求到达Request Middlewares中间件,中间件对request做一些预处理或者直接response请求

  3. URLConf通过urls.py文件和请求的URL找到相应的View

  4. View Middlewares被访问,它同样可以对request做一些处理或者直接返回response

  5. 调用View中的函数

  6. View中的方法可以选择性的通过Models访问底层的数据

  7. 所有的Model-to-DB的交互都是通过manager完成的

  8. 如果需要,Views可以使用一个特殊的Context

  9. Context被传给Template用来生成页面

  10. Template使用Filters和Tags去渲染输出

  11. 输出被返回到View

  12. HTTPResponse被发送到Response Middlewares

  13. 任何Response Middlewares都可以丰富response或者返回一个完全不同的response

  14. Response返回到浏览器,呈现给用户

Python接口自动化测试教程 -- 2. 用Django开发一个简单的POST | GET接口

Django如何开发一个POST接口

  • 准备工作
pip install django
  • pycharm中新建一个Django项目
    Python接口自动化测试教程 -- 2. 用Django开发一个简单的POST | GET接口
    pycharm中生成如下目录
    Python接口自动化测试教程 -- 2. 用Django开发一个简单的POST | GET接口

  • 项目目录介绍


manage.py : Django项目里面的工具,通过它可以调用django shell和数据库等。

TestDemo/

| — settings.py : 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。

| — urls.py : 负责把URL模式映射到应用程序。

| — wsgi.py : 用于项目部署。

Demo /

| — admin.py : django 自带admin后面管理,将models.py 中表映射到后台。

| — apps.py : blog 应用的相关配置。

| — models.py : Django 自带的ORM,用于设计数据库表。

| — tests.py : 用于编写Django单元测试。

| — veiws.py :视图文件,用于编写功能的主要处理逻辑。


  • setting目录中添加一个APP
    Python接口自动化测试教程 -- 2. 用Django开发一个简单的POST | GET接口

  • Login url编写
    Python接口自动化测试教程 -- 2. 用Django开发一个简单的POST | GET接口

  • 创建视图函数
    Python接口自动化测试教程 -- 2. 用Django开发一个简单的POST | GET接口

from django.shortcuts import render
from django.http.response import HttpResponse
from django.shortcuts import render_to_response
# Create your views here.

def Login(request):
    if request.method == "POST":
        username = request.POST.get('username')
        return HttpResponse('index')
    else:
        return render_to_response('login.html')
  • 编写Login模板

templates中添加Login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>login</title>
</head>
<body>
<form action="/login/" method="POST">
    <h1>用户名:<input name="username"></h1>
    <h1>密码:<input name="password"></h1>
    <input type="submit" value="登录">
</form>

</body>
</html>

同时添加了HTML文档之后,要去setting中修改一下路径,要不Django找不到我们的添加的模板
Python接口自动化测试教程 -- 2. 用Django开发一个简单的POST | GET接口

运行一下。
Python接口自动化测试教程 -- 2. 用Django开发一个简单的POST | GET接口

抓取接口的包

  • 返回的内容
    Python接口自动化测试教程 -- 2. 用Django开发一个简单的POST | GET接口
  • 返回的状态
    Python接口自动化测试教程 -- 2. 用Django开发一个简单的POST | GET接口

Django开发一个GET接口

在views中写修改一下代码:

from django.shortcuts import render
from django.http.response import HttpResponse
from django.shortcuts import render_to_response
# Create your views here.

def Login(request):
    if request.method == "GET":
        username = request.GET.get('username')
        return HttpResponse(username)
    else:
        return render_to_response('login.html')

浏览器中:
Python接口自动化测试教程 -- 2. 用Django开发一个简单的POST | GET接口