使用DjangoAdmin+HttpRunner实现一个接口测试功能-创新互联
今天就跟大家聊聊有关使用Django Admin+HttpRunner实现一个接口测试功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
成都创新互联主营施甸网站建设的网络公司,主营网站建设方案,手机APP定制开发,施甸h5重庆小程序开发搭建,施甸网站营销推广欢迎施甸等地区企业咨询前言
这是一个使用HttpRunner开发接口平台的简单Demo。
新建Django项目
安装依赖包
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