华为测试大牛Python+Django接口自动化怎么写的?

有人喜欢创造世界,他们做了开发者;有的人喜欢开发者,他们做了测试员。什么是软件测试?软件测试就是一场本该在用户面前发生的灾难提前在自己面前发生了,这会让他们生出一种救世主的感觉,拯救了用户,也就拯救者这个软件,避免了他们被卸载的命运。
最近被几个公司实习生整自闭了,没有基础,想学自动化又不知道怎么去学,没有方向没有头绪,说白了其实就是学习过程中没有成就感,所以学不下去。出于各种花里胡哨的原因,今天给大家整一个简单又有成就感的接口自动化学习吧。
不皮了,进入正题。本文中用到的技术点有: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函数处理接口请求并返回结果
如果对软件测试、接口测试、自动化测试、性能测试、LR脚本开发、面试经验交流。感兴趣可以273462828(备注博客园测试小柚子),群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。
记得添加Django路由
在urls中加入:

运行项目

输入参数:

执行测试:

好了,以上就是一个简单的Django接口测试开发,比较适合基础不好的朋友入门学习
学习最好的老师是兴趣,兴趣最好的培养就是成就感,希望大家在学习的过程中都能找到成就感。
大家有问题可以留言,积极讨论
华为测试大牛Python+Django接口自动化怎么写的?的更多相关文章
- python+pytest接口自动化(11)-测试函数、测试类/测试方法的封装
前言 在python+pytest 接口自动化系列中,我们之前的文章基本都没有将代码进行封装,但实际编写自动化测试脚本中,我们都需要将测试代码进行封装,才能被测试框架识别执行. 例如单个接口的请求代码 ...
- python+request接口自动化框架
python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整 ...
- 基于Python的接口自动化-unittest测试框架和ddt数据驱动
引言 在编写接口自动化用例时,我们一般针对一个接口建立一个.py文件,一条接口测试用例封装为一个函数(方法),但是在批量执行的过程中,如果其中一条出错,后面的用例就无法执行,还有在运行大量的接口测试用 ...
- python+pytest接口自动化(12)-自动化用例编写思路 (使用pytest编写一个测试脚本)
经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路. 我们在百度搜索天气查询,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接 ...
- python+requests接口自动化完整项目设计源码
前言 有很多小伙伴吵着要完整的项目源码,完整的项目属于公司内部的代码,这个是没法分享的,违反职业道德了,就算别人分享了,也只适用于本公司内部的业务. 所以用例的代码还是得自己去一个个写,我只能分享项目 ...
- python+requests接口自动化完整项目设计源码(一)
原文地址https://www.cnblogs.com/yoyoketang/tag/python接口自动化/ 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址 ...
- 基于Python的接口自动化-01
为什么要做接口测试 当前互联网产品迭代速度越来越快,由之前的2-3个月到个把月,再到班车制,甚至更短,每次发版之前都需要对所有功能进行回归测试,在人力资源有限的情况下,做自动化测试很有必要.由于UI更 ...
- python实现接口自动化
一.总述 Postman:功能强大,界面好看响应格式自主选择,缺点支持的协议单一且不能数据分离,比较麻烦的还有不是所有的公司都能上谷歌SoupUI:支持多协议(http\soup\rest等),能实现 ...
- python+requests接口自动化框架
为什么要做接口自动化框架 1.业务与配置的分离 2.数据与程序的分离:数据的变更不影响程序 3.有日志功能,实现无人值守 4.自动发送测试报告 5.不懂编程的测试人员也可以进行测试 正常接口测试的流程 ...
随机推荐
- Ansible自动化运维工具使用
概述本文描述自动化运维工具 Ansible 的安装及基础使用方法,包含: Centos 下的安装主机配置Ad-Hoc command(命令行执行)Playbook (任务剧本)Ansible 和 Sa ...
- MySQL索引背后的数据结构及算法原理(employees实例)
摘要 http://blog.codinglabs.org/articles/theory-of-mysql-index.html 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特 ...
- 500.19 ,错误:4.00x80070005
直接把网站根目录添加上everyone权限即可
- 推荐一个国外C开发的PHP框架--Phalcon,性能相当好
本人亲自配置测试后.性能相当不错.不过有一点.使用极不符合国人习惯,甚至和大多数主流PHP框架如Zend Framework,Yii,Ci,Thinkphp都不一样. Phalcon 是一个开源的,全 ...
- java基础学习总结——异常处理
一.异常的概念 异常指的是运行期出现的错误,也就是当程序开始执行以后执行期出现的错误.出现错误时观察错误的名字和行号最为重要.
- ELK安装过程
官方安装文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/zip-targz.html 官方硬件和配置项推荐:htt ...
- 没有插件的sublime编辑器是没有灵魂的
这阵子各种捣鼓,现在趁有空记录一下sublime编辑器的一些实用的插件和安装方法,下午又该继续学习了. 接下来安装的是htmlHint.jsHint.cssLint以及汉化这几种插件,其实插件会使我们 ...
- 洛谷P1803
#include <iostream>#include <algorithm>#include <cstdio>using namespace std; struc ...
- lambda函数详解
lambda函数的作用就是可以编写内嵌的无名函数,而不必写成独立的函数: 结构:[]为开始,(参数){函数体} 例如: 1. auto lambdaFun1 = [](int a) {std::cou ...
- 使用Tensoflow实现梯度下降算法的一次线性拟合
# Author Qian Chenglong import tensorflow as tf import numpy as np #生成100个随机数据点 x_date=np.random.ran ...