使用DjangoAdmin+HttpRunner实现一个接口测试功能-创新互联

今天就跟大家聊聊有关使用Django Admin+HttpRunner实现一个接口测试功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

成都创新互联主营施甸网站建设的网络公司,主营网站建设方案,手机APP定制开发,施甸h5重庆小程序开发搭建,施甸网站营销推广欢迎施甸等地区企业咨询

前言

这是一个使用HttpRunner开发接口平台的简单Demo。

新建Django项目

使用Django Admin+HttpRunner实现一个接口测试功能

安装依赖包

使用Django Admin+HttpRunner实现一个接口测试功能

pip install httprunner=1.5.6 -i https://pypi.doubanio.com/simple/


模型规划


  • 项目Project:包含 名称、创建时间、修改时间
  • 测试套件TestSuite:对应HttpRunner的一个yaml文件,包含所属项目、name、base_url、request请求配置、variables用户自定义变量、创建时间、修改时间
  • 测试用例TestCase:对应HttpRunner中的一个test段,包含所属TestSuite、name、skip、request、validate、extract、创建时间、修改时间
  • 测试结果TestResult:测试套件运行的一次结果信息,包含所属TestSuite、HttpRunner运行summary中的时间信息、统计信息、平台信息、详情等

自定义YamlField


由于TestSuite中的request、variables以及用例中的request我们需要使用Python的字典格式,用例中的validate和extract需要使用Python的列表格式。而Django中这些只能按字符串格式TextField存储。


我们编写一个自定义YamlField,存库时按字符串存,读取时转为Python字典或列表。


在apitest目录下新建fields.py,内容如下。

串存,读取时转为Python字典或列表。
在apitest目录下新建fields.py,内容如下。

import yaml
from django.db import models

class YamlField(models.TextField):
  def to_python(self, value): # 将数据库内容转为python对象时调用
    if not value:
      value = {}
    if isinstance(value, (list, dict)):
      return value
    return yaml.safe_load(value)

  def get_prep_value(self, value): # create时插入数据, 转为字符串存储
    return value if value is None else yaml.dump(value, default_flow_style=False)

  def from_db_value(self, value, expression, connection): # 从数据库读取字段是调用
    return self.to_python(value)

分享文章:使用DjangoAdmin+HttpRunner实现一个接口测试功能-创新互联
文章分享:http://hbruida.cn/article/phdig.html