下面是通过Django Admin+HttpRunner1.5.6实现简易接口测试平台的完整攻略:
简介
首先,我们介绍一下Django Admin和HttpRunner的基础概念和用途。
Django Admin
Django Admin是一个基于Django框架的自动生成管理后台的工具,可以快速便捷地生成实现增删改查等操作的Web页面。我们可以通过Django Admin来实现接口管理,创建接口的数据模型等。
HttpRunner
HttpRunner是一个基于Python Requests库的开源的 HTTP(S) 接口自动化测试框架,支持多种方式的测试用例编写,比如YAML、JSON等。通过HttpRunner的测试用例可以实现对接口的测试。
组合使用
我们将Django Admin和HttpRunner进行组合,实现一个简易的接口测试平台,可以通过Django Admin的管理后台创建接口模型,然后再通过HttpRunner的测试用例对接口进行测试。
操作步骤
下面是通过Django Admin+HttpRunner实现简易接口测试平台的操作步骤:
1. 创建Django项目
首先,在命令行窗口或终端中执行以下命令,创建一个Django项目:
django-admin startproject api_test_platform
2. 创建Django App
创建Django App,命名为apis:
python manage.py startapp apis
3. 安装HttpRunner
使用pip命令安装HttpRunner:
pip install httprunner==1.5.6
4. 构建数据模型
在Django App的models.py文件中定义接口模型,代码如下:
from django.db import models
class API(models.Model):
name = models.CharField(max_length=255, verbose_name='接口名称')
url = models.CharField(max_length=255, verbose_name='请求地址')
method = models.CharField(max_length=10, verbose_name='请求方法', choices=[('GET', 'GET'),('POST', 'POST')], default='GET')
def __str__(self):
return self.name
class Meta:
verbose_name = 'API'
verbose_name_plural = 'APIs'
5. 创建管理后台
在Django App的admin.py文件中,注册API模型,代码如下:
from django.contrib import admin
from .models import API
admin.site.register(API)
6. 编写测试用例
在Django项目的根目录下,创建tests
目录,然后在该目录中创建testcases.yaml
文件,编写测试用例,示例代码如下:
- test:
name: 查询接口
request:
url: http://127.0.0.1:8000/api/get_api/
method: GET
validate:
- eq: ['status_code', 200]
- eq: ['headers.Content-Type', 'application/json']
- eq: ['body.name', '测试接口']
7. 编写测试脚本
在Django项目的根目录下,创建tests
目录,然后在该目录中创建testcases.py
文件,编写测试脚本,示例代码如下:
from httprunner import HttpRunner, Config, Step
class TestAPI(HttpRunner):
config = (
Config("查询接口")
.base_url("http://127.0.0.1:8000")
.verify(False)
)
teststeps = [
Step(
RunRequest("查询接口")
.get("/api/get_api/")
.with_variables(**{})
.extract()
.validate()
),
]
8. 运行测试用例
在命令行窗口或终端中执行以下命令,运行测试用例:
hrun tests/
9. 执行结果
执行完成之后,可以查看输出结果,判断接口能否正常工作。
10. 可能的问题
如果在执行过程中,遇到了类似以下错误:
no module named 'django.core.urlresolvers'
那么,可以尝试在项目的settings.py文件中,添加如下的代码:
import django.urls as urls
urls.resolvers.reverse_lazy = urls.reverse
示例说明1:在Django管理后台创建接口模型
首先,在Django项目中,我们需要在models.py文件中定义接口模型:
from django.db import models
class API(models.Model):
name = models.CharField(max_length=255, verbose_name='接口名称')
url = models.CharField(max_length=255, verbose_name='请求地址')
method = models.CharField(max_length=10, verbose_name='请求方法', choices=[('GET', 'GET'),('POST', 'POST')], default='GET')
def __str__(self):
return self.name
class Meta:
verbose_name = 'API'
verbose_name_plural = 'APIs'
然后,在admin.py文件中注册API模型:
from django.contrib import admin
from .models import API
admin.site.register(API)
在Django项目的命令行窗口或终端中执行以下命令,启动服务器:
python manage.py runserver
在浏览器中打开管理后台网址,例如:
http://127.0.0.1:8000/admin/
用管理员账号登录后,可以在APIs模块下,创建和管理接口模型。
示例说明2:使用HttpRunner的测试用例对接口进行测试
首先,在Django项目的根目录下,创建tests
目录,然后在该目录中创建testcases.yaml
文件,编写测试用例:
- test:
name: 查询接口
request:
url: http://127.0.0.1:8000/api/get_api/
method: GET
validate:
- eq: ['status_code', 200]
- eq: ['headers.Content-Type', 'application/json']
- eq: ['body.name', '测试接口']
然后,在同一级目录下,创建tests.py
文件,编写测试脚本:
from httprunner import HttpRunner, Config, Step
class TestAPI(HttpRunner):
config = (
Config("查询接口")
.base_url("http://127.0.0.1:8000")
.verify(False)
)
teststeps = [
Step(
RunRequest("查询接口")
.get("/api/get_api/")
.with_variables(**{})
.extract()
.validate()
),
]
在命令行窗口或终端中执行以下命令,运行测试用例:
hrun tests/
执行完成之后,可以查看输出结果,判断接口能否正常工作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:通过Django Admin+HttpRunner1.5.6实现简易接口测试平台 - Python技术站