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

embedded/2025/2/13 1:52:18/
Python+Django接口自动化
 引言:

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

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

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

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3. <head>

  4. <meta charset="UTF-8">

  5. <title>Parker接口测试</title>

  6. </head>

  7. <body>

  8. <h3 style="...">接口测试</h3>

  9. <form action="/index/" method="post">

  10. <table>

  11. <tr>

  12. <td>接口地址:</td>

  13. <td>

  14. <input type="text" name="url" /> <br/>

  15. </td>

  16. </tr>

  17. <tr>

  18. <td>选择方法:</td>

  19. <td>

  20. <input type="radio" name="fun" value="post" checked/>POST

  21. <input type="radio" name="fun" value="get" />GET

  22. </td>

  23. </tr>

  24. <tr>

  25. <td>参数类型:</td>

  26. <td>

  27. <select name="leixin">

  28. <option value="json">Json</option>

  29. <option value="xml">XML</option>

  30. <option value="date">Data</option>

  31. </select>

  32. </td>

  33. </tr>

  34. <tr>

  35. <td>测试数据:</td>

  36. <td>

  37. <textarea name="testdate" style="with:200px;height:60px;"></textarea>

  38. </td>

  39. </tr>

  40. <tr>

  41. <td>预期结果:</td>

  42. <td>

  43. <input type="text" name="exr" /> <br/>

  44. </td>

  45. </tr>

  46. <tr>

  47. <td>实际结果:</td>

  48. <td>

  49. <label>{ { data1 }}</label><br/>

  50. </td>

  51. </tr>

  52. <tr>

  53. <td>测试结果:</td>

  54. <td>

  55. <label>{ { data }}</label><br/>

  56. </td>

  57. </tr>

  58. <tr>

  59. <td>

  60. <input type="submit" value="执行测试" />

  61. </td>

  62. </tr>

  63. </table>

  64. </form>

  65. </body>

  66. </html>

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

 
  1. import requests

  2. import json

  3. class cls_api:

  4. def post(self,url,par):

  5. a_url=url

  6. a_par=par

  7. res=requests.post(a_url,a_par)

  8. return res

  9. def get(self,url,par):

  10. a_url=url

  11. a_par=par

  12. res=requests.get(a_url,a_par)

  13. return res

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

 
  1. #-*- coding:utf-8 -*-

  2. from django.shortcuts import render

  3. from django.http import HttpResponse

  4. import json

  5. from parkerapi import postapi

  6. def index(request):

  7. pt=postapi.cls_api()

  8. exr=request.POST.get('exr',None)

  9. data=""

  10. data1=""

  11. if request.method=='POST':

  12. data=pt.post(request.POST.get('url',None), json.loads(request.POST.get('testdate',None)))

  13. result=data.json()

  14. data1=result['message']

  15. if int(result['message']==int(exr)):

  16. data=u'测试通过'

  17. else:

  18. data=u'测试失败'

  19. return render(request,"index.html",{"data":data,"data1":data1})

  20. def add_args(a,b):

  21. x=int(a)

  22. y=int(b)

  23. return x+y

  24. def post(request):

  25. if request.method=='POST':

  26. d={}

  27. if request.POST:

  28. a=request.POST.get('a',None)

  29. b=request.POST.get('b',None)

  30. if a and b:

  31. res=add_args(a, b)

  32. d['message']=res

  33. d=json.dumps(d)

  34. return HttpResponse(d)

  35. else:

  36. return HttpResponse(u'输入错误')

  37. else:

  38. return HttpResponse(u'输入为空')

  39. else:

  40. return HttpResponse(u'方法错误')

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

记得添加Django路由

在urls中加入:

运行项目

输入参数:

执行测试:

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


http://www.ppmy.cn/embedded/161746.html

相关文章

服务器绑定 127.0.0.1 和 0.0.0.0 的区别

前言 IP 地址实际上并不是分配给计算机的&#xff0c;而是分配给网卡的&#xff0c;因此当计算机上存在多块网卡时&#xff0c;每一块网卡都会有自己的 IP 地址。 绑定 127.0.0.1 是绑定到 lookback 这个虚拟的本地回环接口&#xff0c;该接口只处理本机上的数据&#xff0c;…

C语言基本概念————讨论sqrt()和pow()函数与整数的关系

本文来源&#xff1a;C语言基本概念——讨论sqrt()和pow()函数与整数的关系. C语言基本概念——sqrt和pow函数与整数的关系 1. 使用sqrt()是否可以得到完全平方数的精确的整数平方根1.1 完全平方数的计算结果是否精确&#xff1f;1.2 为什么不会出现误差&#xff08;如 1.99999…

vi 是 Unix 和 Linux 系统中常用的文本编辑器

vi是 Unix 和 Linux 系统中常用的文本编辑器&#xff0c;它有几种不同的模式&#xff0c;其中最常用的是命令模式和插入模式。光标控制主要在命令模式下进行&#xff0c;以下是一些常用的vi命令来控制光标位置&#xff1a; • h,j,k,l&#xff1a;分别用于将光标向左、向下、向…

Word成功接入DeepSeek详细步骤

原理 原理是利用Word的VBA宏&#xff0c;写代码接入API。无需下载额外插件。 步骤一、注册硅基流动 硅基流动统一登录 注册这个是为了有一个api调用的api_key&#xff0c;有一些免费的额度可以使用。大概就是这个公司提供token&#xff0c;我们使用这个公司的模型调用deepsee…

C# 两种方案实现调用 DeepSeek API

目录 序 开发运行环境 访问API的一个通用方法 原生官网实现 申请 API key 调用实现 调用示例 腾讯云知识引擎原子调用 申请 API key 调用示例 小结 序 DeepSeek&#xff08;深度求索&#xff09; 最近可谓火爆的一塌糊涂&#xff0c;具体的介绍这里不再赘述&#x…

【C#】C#中的线程安全:使用lock关键字确保共享资源的安全访问

文章目录 前言一、为什么需要线程安全&#xff1f;二、示例代码三、代码解析1、同步对象的定义2、使用lock关键字3、双重检查锁定 四、总结 前言 在多线程编程中&#xff0c;确保对共享资源的安全访问是至关重要的。本文将讨论如何使用 lock 关键字和同步对象来实现线程安全&a…

CS架构软件网络安全 csf网络安全框架

美国依赖于其关键基础设施的可靠运行。 网络安全威胁利用了关键基础设施系统日益增加的复杂性和连通性&#xff0c;将国家的安全、经济以及公共安全和健康置于危险之中。 类似于金融和声誉风险&#xff0c;网络安全风险会影响公司的底线。 它会推高成本并影响收入&#xff0c;它…

Json-RPC项目框架(二)

目录 1. 项目实现; 1. 项目实现: 1.1 通信抽象实现: (1) BaseMessage: 主要实现对消息处理; 主要包含设置和获取ID, 设置类型和获取类型, 消息检查, 以及序列化和反序列化操作. class BaseMessage{public://大家需要的功能先实现;using ptr std::shared_ptr<BaseMessage…