【测试开发】Python+Django实现接口测试工具

Python+Django接口自动化
引言:

最近被几个公司实习生整自闭了,没有基础,想学自动化又不知道怎么去学,没有方向没有头绪,说白了其实就是学习过程中没有成就感,所以学不下去。出于各种花里胡哨的原因,今天给大家整一个简单又有成就感的接口自动化学习吧。

不皮了,进入正题。本文中用到的技术点有:Python基础、Django基础、Request库、一丢丢前端基础。(考虑到大家零基础,所以文中代码编写使用纯新手手法)

1、先创建一个Django项目(具体请参考Django基础入门教程)2、创建一个模板,新增一个index.html页面

python 复制代码
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Parker接口测试</title>
</head>
<body>
    <h3 style="...">接口测试</h3>
    <form action="/index/" method="post">
        <table>
            <tr>
            <td>接口地址:</td>
            <td>
                <input type="text" name="url" /> <br/>
            </td>
            </tr>
            <tr>
            <td>选择方法:</td>
            <td>
                <input type="radio" name="fun" value="post" checked/>POST
                <input type="radio" name="fun" value="get" />GET
            </td>
            </tr>
            <tr>
            <td>参数类型:</td>
            <td>
                <select name="leixin">
                    <option value="json">Json</option>
                    <option value="xml">XML</option>
                    <option value="date">Data</option>
                </select>
            </td>
            </tr>
            <tr>
            <td>测试数据:</td>
            <td>
                <textarea name="testdate" style="with:200px;height:60px;"></textarea>
            </td>
            </tr>
            <tr>
            <td>预期结果:</td>
            <td>
                <input type="text" name="exr" /> <br/>
            </td>
            </tr>
            <tr>
            <td>实际结果:</td>
            <td>        
                <label>{{ data1 }}</label><br/>
            </td>
            </tr>
            <tr>
            <td>测试结果:</td>
            <td>
                <label>{{ data }}</label><br/>
            </td>
            </tr>
            <tr>
            <td>
                <input type="submit" value="执行测试" />    
            </td>
            </tr>
        </table>
    </form>
</body>
</html>

2、在项目包中新建py文件,封装接口调用类

python 复制代码
 
import requests
import json
class cls_api:
    def post(self,url,par):
        a_url=url
        a_par=par
        res=requests.post(a_url,a_par)
        return res
    
    def get(self,url,par):
        a_url=url
        a_par=par
        res=requests.get(a_url,a_par)
        return res

4、在views文件中添加如下代码

python 复制代码
 
#-*- coding:utf-8 -*-
from django.shortcuts import render
from django.http import HttpResponse
import json
from parkerapi import postapi
 
def index(request):
    pt=postapi.cls_api()
    exr=request.POST.get('exr',None)
    data=""
    data1=""
    if request.method=='POST':
        data=pt.post(request.POST.get('url',None), json.loads(request.POST.get('testdate',None)))
        result=data.json()
        data1=result['message']
        if int(result['message']==int(exr)):
            data=u'测试通过' 
        else:
            data=u'测试失败' 
    return render(request,"index.html",{"data":data,"data1":data1})
 
def add_args(a,b):
    x=int(a)
    y=int(b)
    return x+y
 
def post(request):
    if request.method=='POST':
        d={}
        if request.POST:
            a=request.POST.get('a',None)
            b=request.POST.get('b',None)
            if a and b:
                res=add_args(a, b)
                d['message']=res
                d=json.dumps(d)
                return HttpResponse(d)
            else:
                return HttpResponse(u'输入错误')
        else:
            return HttpResponse(u'输入为空')
    else:
        return HttpResponse(u'方法错误')

add_args函数处理加法运算,index函数接收前端POST数据,处理数据并返回结果,post函数处理接口请求并返回结果

记得添加Django路由

在urls中加入:

运行项目

输入参数:

执行测试:

好了,以上就是一个简单的Django接口测试开发,比较适合基础差的同学入门学习


【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(文末尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
冯汉栩4 分钟前
Swift Control RollingCountdownView(动画倒计时)
开发语言·ios·swift
lisanmengmeng7 分钟前
搭建elk环境并接入frostmourne,实现监控报警效果(五)
开发语言·elk·日志·日志监控
Groundwork Explorer34 分钟前
W5500 网卡编程初始化与使用指南
python·单片机
oh,huoyuyan40 分钟前
JS 动态网页抓不到?试试火车采集器网页抓取工具
开发语言·javascript·ecmascript
风流 少年1 小时前
hutool
java·服务器·开发语言
逸Y 仙X1 小时前
MCP(模型控制协议)完全指南:从核心概念到实战开发
python·大模型·llm·ai编程·mcp
一木 之林2 小时前
四、STL容器与数据结构
开发语言·数据结构·c++
QX_hao2 小时前
【Go】--Cobra-cli的用法
开发语言·后端·golang
艾醒(AiXing-w)2 小时前
LangChain 1.0 入门(三):稳定性双核心——重试机制+速率限速器参数详解与实战
开发语言·langchain·php
WILLF2 小时前
前端视角:Python requests vs JS axios
前端·python