Python+Django接口自动化怎么写?

发表于:2024-3-28 09:22

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:爱码小士    来源:知乎

  引言:
  最近被几个公司实习生整自闭了,没有基础,想学自动化又不知道怎么去学,没有方向没有头绪,说白了其实就是学习过程中没有成就感,所以学不下去。出于各种花里胡哨的原因,今天给大家整一个简单又有成就感的接口自动化学习吧。
  不皮了,进入正题。本文中用到的技术点有:Python基础、Django基础、Request库、一丢丢前端基础。(考虑到大家零基础,所以文中代码编写使用纯新手手法)
  1、先创建一个Django项目(具体请参考Django基础入门教程)
  2、创建一个模板,新增一个index.html页面
  <!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>
  3、在项目包中新建py文件,封装接口调用类
  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文件中添加如下代码
  #-*- 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接口测试开发,比较适合基础不好的朋友入门学习。学习最好的老师是兴趣,兴趣最好的培养就是成就感,希望大家在学习的过程中都能找到成就感。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号