接口测试平台代码实现30:接口库-接口列表

简介: 接口测试平台代码实现30:接口库-接口列表

微信图片_20220618122956.png首先来设计这个接口表:

一个接口实体应该具有哪些字段呢?

   1. id ,自动生成无需在意

   2.project_id ,所属的项目id

   3.name , 接口名字

   4.api_method ,请求方式

   5.api_url , 请求url

   6.api_header ,请求头

   7.api_login ,是否需要带登陆状态

   8.api_host , 域名

   9.des, 描述

   10.body_method , 请求体编码格式

   11.api_body, 请求体

   12.result , 结果-返回体

   13.sign , 是否需要启动自定义算法加密

   14.file_key ,带文件的文件key

   15.file_name , 带文件的文件名

   16.public_header , 项目的全局变量-公共请求头

 

这里我们先把所有可能用到的字段都列举出来了。怎么样,发送一个请求是不是比我们看到的要复杂多了?


注意,各种长度要尽量符合实际情况,比如url,有些接口甚至达到上千字符

而header则可能更长。但是这里的设置最大长度只会限定住后台admin 中你手动输入的情况。实际中我们在后台代码通过orm则可以无限制存储。


好的,打开models.py:

写好如下表设置:微信图片_20220618122923.png

懒人代码:

class DB_apis(models.Model):
    project_id = models.CharField(max_length=10,null=True) #项目id
    name =  models.CharField(max_length=100,null=True) #接口名字
    api_method =  models.CharField(max_length=10,null=True) #请求方式
    api_url =  models.CharField(max_length=1000,null=True) #url
    api_header =  models.CharField(max_length=1000,null=True) #请求头
    api_login =  models.CharField(max_length=10,null=True) #是否带登陆态
    api_host =  models.CharField(max_length=100,null=True) #域名
    des =  models.CharField(max_length=100,null=True) #描述
    body_method =  models.CharField(max_length=20,null=True) #请求体编码格式
    api_body =  models.CharField(max_length=1000,null=True) #请求体
    result =  models.TextField(null=True) #返回体 因为长度巨大,所以用大文本方式存储
    sign =  models.CharField(max_length=10,null=True) #是否验签
    file_key =  models.CharField(max_length=50,null=True) #文件key
    file_name =  models.CharField(max_length=50,null=True) #文件名
    public_header =  models.CharField(max_length=1000,null=True) #全局变量-请求头
    def __str__(self):
        return self.name

然后同步数据库:

微信图片_20220618122936.png然后admin.py中注册:

微信图片_20220618122956.png然后我们去后台创建1条接口记录,以便我们之后前端列表的展示调试。

注意这里我们必须填入所有字段才能保存成功。仅展示用,所以大家无需填入真正规则的数据。

微信图片_20220618123008.png微信图片_20220618123017.png

然后我们开始更新views.py中的child_json(),要增加几句代码,用来从数据库接口表中取数据传递给前端页面:

其中获取数据库的接口,要过滤,必须是项目id正确的 才会要。微信图片_20220618123026.png

给前端的这个res json串,中的apis 就可以让前端直接使用了,

打开P_apis.html,学着之前项目列表的前端代码,创建接口列表:微信图片_20220618123033.png

大家可直接复制代码:(建议能自己敲下来的自己敲,完全懂的才可以复制粘贴)

<br><br>
<table class="table table-striped">
    <thead>
        <tr>
            <th>id</th> <th style="width: 50%">接口名称</th> <th style="width: 30%">url</th> <th>操作</th>
        </tr>
    </thead>
    <tbody>
         {% for i in apis %}
             <tr>
                <td>{{ i.id }}</td><td>{{ i.name }}</td> <td>{{ i.api_url }}</td>  <td>
                 <button onclick="" class="btn btn-success">调试</button> <button onclick="" class="btn btn-danger">删除</button></td>
            </tr>
        {% endfor %}
    </tbody>
</table>

看看效果:微信图片_20220618123044.png

相关文章
|
29天前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
24 1
|
14天前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出&quot;验证成功&quot;,否则输出&quot;验证失败&quot;。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。
|
1月前
|
缓存 运维 Serverless
应用研发平台EMAS产品常见问题之测试检查更新没有反应如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
|
测试技术 数据库 Python
python测试代码(二)
python测试代码(二)
19 0
|
1月前
|
机器学习/深度学习 人工智能 监控
视觉智能平台常见问题之体验产品的美颜测试关掉如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
23 1
|
1月前
|
Java 测试技术
单元测试编写可测试代码
单元测试编写可测试代码
19 2
|
14天前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
21 0
|
1月前
|
JavaScript jenkins 测试技术
这10款性能测试工具,收藏起来,测试人的工具箱!
这10款性能测试工具,收藏起来,测试人的工具箱!
|
1月前
|
人工智能 监控 测试技术
利用AI辅助工具提升软件测试效率
【2月更文挑战第17天】 随着科技的不断发展,人工智能(AI)在各个领域的应用越来越广泛。在软件测试领域,AI技术也发挥着重要作用。本文将探讨如何利用AI辅助工具提升软件测试效率,包括自动化测试、智能缺陷识别和预测等方面。通过引入AI技术,软件测试过程将变得更加高效、准确和可靠。
178 1
|
1月前
|
测试技术
现代软件测试中的自动化工具与挑战
传统软件测试面临着越来越复杂的系统架构和不断增长的测试需求,自动化测试工具应运而生。本文将探讨现代软件测试中自动化工具的应用和挑战,深入分析其优势与局限性,为软件测试领域的发展提供思路和启示。