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

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接口测试开发,比较适合基础差的同学入门学习

相关推荐
傲笑风4 小时前
【openvino】tinybert基于openvino服务化部署(四)
人工智能·python·自然语言处理·nlp·bert·openvino
维基框架5 小时前
WIKI 知识库 v1.1.1 正式发布
人工智能·python
Doraemomo5 小时前
SQLite数据库
数据库·sqlite
Mr数据杨7 小时前
【Codex】用下载中心模块管理系统导出文件与下载任务
django·codex·项目开发
谢白羽8 小时前
SGLang的AWQ量化笔记
笔记·python·sglang
迷迭香yy9 小时前
基金档案数据工程实战从收入分析到持仓穿透的Python解析 IG50免费开源股票数据API接口
开发语言·python
清水白石0089 小时前
Python 类型设计深度解析:TypedDict 能否替代 dataclass?从 JSON 数据边界到 API 设计的最佳实践
java·python·json
️学习的小王10 小时前
Git项目提交忽略文件怎么做?以Python项目为例,详解.gitignore
git·python·elasticsearch
前端 贾公子10 小时前
第09章:上下文与记忆 (6)
开发语言·前端·python
evans在进步10 小时前
Java 常用设计模式入门:建造者、工厂、单例、外观与代理
java·python·设计模式