python自动化测试三部曲之request+django实现接口测试

国庆期间准备写三篇博客,介绍和总结下接口测试,由于国庆期间带娃,没有按照计划完成,今天才完成第二篇,惭愧惭愧。

这里我第一篇博客的地址:https://www.jb51.net/article/197004.htm,主要是介绍unittest框架,有兴趣的同学们可以移步去查阅

这里废话少说,进入正题

我的思路是这样的

1、先用django实现登陆、增加、删除、查看4个接口

2、在excel定义好测试案例、然后读取excel中的案例,然后把案例用unittest框架组装和封装

3、启动django,执行测试案例

一、先跑通unittest到django的流程

1、先创建一个Django的项目

python自动化测试三部曲之request+django实现接口测试

2、创建路由,这里我们使用二级路由

a、先复制工程目录下的urls.py文件到app目录下

python自动化测试三部曲之request+django实现接口测试

b、修改工程目录下的urls.py文件,定义一级路由

python自动化测试三部曲之request+django实现接口测试

c、修改app目录下的urls.py文件,设置二级路由,这里切记务必要删除默认的admin这条路由

python自动化测试三部曲之request+django实现接口测试

d、定义这条路由指向的视图的函数

python自动化测试三部曲之request+django实现接口测试

e、启动django,这里我们使用9090端口启动,因为我们的Jenkins端口用的是8080

E:\python\unittestForDjango>python manage.py runserver 9090

f、这里的是启动成功的样式,我圈住的告警可以忽略,因为这里Django的admin需要的,我们这里不会用到django的admin

python自动化测试三部曲之request+django实现接口测试

g、打开浏览器访问django,我们的一个简单的Django项目已经跑通

python自动化测试三部曲之request+django实现接口测试

3、在视图函数中定义一个方法,这个方法分别处理GET请求和POST请求

a、定义视图函数

这里通过这个参数告诉浏览器,我们返回的是JSON数据

return HttpResponse(result, content_type="application/json;charset=utf-8")
def test_login(request):
  method = request.method.upper()
  if method == "GET":
    result = {}
    name = request.GET.get("username",None)
    pwd = request.GET.get("pwd",None)
    result["name"] = name
    result["pwd"] = pwd
    result = json.dumps(result)
    # return HttpResponse(result)
    return HttpResponse(result, content_type="application/json;charset=utf-8")

  else:
    result = {}
    name = request.POST.get("username",None)
    pwd = request.POST.get("pwd",None)
    result["name"] = name
    result["pwd"] = pwd
    result = json.dumps(result)
    return HttpResponse(result,content_type="application/json;charset=utf-8")

b、使用request模块发起POST和GET请求

#Auther Bob
#--*--conding:utf-8 --*--
import requests
import json


class TestCase(object):
  def __init__(self,username,pwd,url):
    self.username = username
    self.pwd = pwd
    self.url = url


  def get(self):
    # 发送get请求
    url = self.url + "?username=" + str(self.username) + "&" + "pwd=" + str(self.pwd)
    res = requests.get(url=url)
    print(res.text,type(res.text))

  def post(self):
    # 发送post请求
    data = http://www.cppcns.com/jiaoben/python/{"username" : self.username,
      "pwd" : self.pwd
    }
    res = requests.post(url=self.url,data=http://www.cppcns.com/jiaoben/python/data)
    print(res.text)


if __name__ =='__main__':
  url = "http://127.0.0.1:9090/web/login/"
  username = "zhangsan"
  pwd = "123"

  t = TestCase(username,pwd,url)

  t.get()
  t.post()

c、这里我们引入unittest框架,测试案例可以这么写

python自动化测试三部曲之request+django实现接口测试

扫一扫手机访问