【测试开发】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性能测试

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

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

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

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

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

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

相关推荐
逝水无殇6 分钟前
C# 反射详解
开发语言·后端·c#
xlxxy_21 分钟前
sap获取批次特性报表
java·linux·开发语言·前端·数据库·abap·mm
北冥you鱼23 分钟前
Go语言常用包使用指南:从标准库到第三方利器
开发语言·microsoft·golang
俺不中嘞32 分钟前
python常用函数
开发语言·python
欢喜躲在眉梢里40 分钟前
用飞算Java做了一套新能源充电运营管理系统:把站点、设备、订单拆成可运营的微服务
java·开发语言·微服务·ai编程·技术分享·java开发·飞算javaai炫技赛
薛定猫AI44 分钟前
【技术干货】大模型文档结构化提取实战:Python解析PDF发票并批量生成CSV
java·python·pdf
zhiSiBuYu05171 小时前
RAG 性能优化与缓存策略实战指南
人工智能·python·机器学习
荣码1 小时前
Prompt工程实战:同一个需求换3种写法,效果差10倍
java·python
想会飞的蒲公英1 小时前
集成学习入门:Bagging、Boosting 到底在组合什么
人工智能·python·机器学习·集成学习·boosting
努力努力再努力搬砖1 小时前
批量下载ERA5数据
python