接口测试平台代码实现106:登录态接口-2

简介: 本节我们要想办法构造出登陆态接口的div内的实际dom元素。大部分内容我们仍然可以借鉴普通接口调试层的内容,所以打开P_apis.html,找到那个登陆态的div,开始进行添加内部控件,但是也不能全都照搬过来,有一些就不需要,比如接口名字。而因为这个接口一个项目基本也就设置一次,所以优化便利性这种事的优先级不高,精力还是留给那些使用频率高的功能上吧~

首先是div的样式和标题。标题虽然没啥大用,但是起个提示效果,微信图片_20220702122808.png

然后是 请求方式/url/调试按钮那一行。微信图片_20220702122931.png

上图中这一大块都是直接复制调试层的,不过移动过来后要注意修改内部的id,毕竟不能重复,所以之前全是ts_.... 全改成login_.....

 

这时候看看效果:

微信图片_20220702122939.png

接下来是环境/host:微信图片_20220702122945.png

host输入框我们仍然用datalist_1来作为选择条件,但是因为调试层已经声明过一个datalist_1,所以我们这里不用再写,直接用即可,并且我们删除了clear这个按钮,这里用处不大,所以要修改下输入框的宽度。

微信图片_20220702122959.png

接下来是请求头:微信图片_20220702123005.png

微信图片_20220702123011.png

然后是body请求头类型和请求体了,这里我们一样直接复制后 改id。

这里这一大段代码比较麻烦,我们直接复制后,我只标记出id修改的地方,大家把所有id,前面都加上login_这样便于之后区分,逐行检查,千万别落下,不然各种未知bug会出现,大家也可以之后直接复制我的源码。

微信图片_20220702123021.png微信图片_20220702123031.png微信图片_20220702123039.png

可复制代码:

<ul id="login_myTab" class="nav nav-tabs" >
    <li class="active"><a id="login_click_none" href="#login_none" data-toggle="tab" >none</a></li>
    <li ><a href="#login_form-data" data-toggle="tab" >form-data</a></li>
    <li ><a href="#login_x-www-form-urlencoded" data-toggle="tab" >x-www-form-urlencoded</a></li>
    <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">raw <b class="caret"></b></a>
        <ul class="dropdown-menu" role="menu" aria-labelledby="login_myTabDrop1">
            <li><a href="#login_Text" tabindex="-1" data-toggle="tab">Text</a></li>
            <li><a href="#login_JavaScript" tabindex="-1" data-toggle="tab">JavaScript</a></li>
            <li><a href="#login_Json" tabindex="-1" data-toggle="tab">Json</a></li>
            <li><a href="#login_Html" tabindex="-1" data-toggle="tab">Html</a></li>
            <li><a href="login_#Xml" tabindex="-1" data-toggle="tab">Xml</a></li>
        </ul>
    </li>
    <li ><a href="#login_GraphQL" data-toggle="tab" >GraphQL</a> </li>
    <li ><a href="#login_response" data-toggle="tab" >返回体</a></li>
</ul>
<div id="login_myTabContent" class="tab-content">
    <div class="tab-pane fade in active" id="login_none" style="text-align: center;color: grey">
        <h3>这个请求将不会携带任何请求体</h3>
        <h5>This request will not carry any request-body</h5>
    </div>
    <div class="tab-pane fade" id="login_form-data">
        <div class="table-responsive" style="width: 98%;color: black">
            <table class="table table-bordered table-striped" id="login_mytable" style="background-color:white">
                <thead style="color: #337ab7;font-size: x-small">
                  <tr>
                    <td style="width: 30%">Key</td>
                    <td style="width: 50%">Value</td>
                  </tr>
                </thead>
                <tbody id="login_mytbody">
                  <tr>
                    <td></td>
                    <td></td>
                  </tr>
                </tbody>
            </table>
        </div>
        <button class="btn btn-default" id="login_add"><i class="fa fa-plus"></i> 添加新参数</button>
        <script>window.jQuery || document.write('<script src="/static/201801271505/js/jquery-1.11.0.min.js"><\/script>')</script>
        <script type="text/javascript" src="/static/201801271505/js/bootstable.js"></script>
    </div>
    <div class="tab-pane fade" id="login_x-www-form-urlencoded">
        <div class="table-responsive" style="width: 98%;color: black">
            <table class="table table-bordered table-striped" id="login_mytable2" style="background-color:white">
                <thead style="color: #337ab7;font-size: x-small">
                  <tr>
                    <td style="width: 30%">Key</td>
                    <td style="width: 50%">Value</td>
                  </tr>
                </thead>
                <tbody id="login_mytbody2">
                  <tr>
                    <td></td>
                    <td></td>
                  </tr>
                </tbody>
            </table>
        </div>
        <button class="btn btn-default" id="login_add2"><i class="fa fa-plus"></i> 添加新参数</button>
        <script>window.jQuery || document.write('<script src="/static/201801271505/js/jquery-1.11.0.min.js"><\/script>')</script>
        <script type="text/javascript" src="/static/201801271505/js/bootstable.js"></script>
    </div>
    <div class="tab-pane fade" id="login_Text">
        <textarea name="" id="login_raw_Text" style="color: black;width: 98%;height: 300px"></textarea>
    </div>
    <div class="tab-pane fade" id="login_JavaScript">
        <textarea name="" id="login_raw_JavaScript" style="color: black;width: 98%;height: 300px"></textarea>
    </div>
    <div class="tab-pane fade" id="login_Json">
        <textarea name="" id="login_raw_Json" style="color: black;width: 98%;height: 300px"></textarea>
    </div>
    <div class="tab-pane fade" id="login_Html">
        <textarea name="" id="login_raw_Html" style="color: black;width: 98%;height: 300px"></textarea>
    </div>
    <div class="tab-pane fade" id="login_Xml">
        <textarea name="" id="login_raw_Xml" style="color: black;width: 98%;height: 300px"></textarea>
    </div>
    <div class="tab-pane fade" id="login_GraphQL">
         <table style="width: 98%">
           <thead>
                <tr>
                    <td style="width: 55%"><span >QUERY</span></td>
                    <td style="width: 40%"><span >GRAPHQL VARIABLES</span></td>
                  </tr>
           </thead>
            <tbody style="color: black">
              <tr>
                <td><textarea id="login_body_plan_G_Q"  rows="14" style="padding-left: 3px;border-radius: 5px;width: 99%"></textarea></td>
                <td><textarea id="login_body_plan_G_G"  rows="14" style="padding-left: 3px;border-radius: 5px;width: 100%"></textarea></td>
              </tr>
            </tbody>
        </table>
     </div>
    <div class="tab-pane fade" id="login_response">
        <textarea name="" id="login_response_body" disabled="disabled" style="background-color: #e4f3f5;color: black;width: 98%;height: 300px"></textarea>
    </div>
</div>
<br>

这次改动的地方很密集,如果之后使用中出现bug,请及时反馈哦~微信图片_20220702123054.png

目前显示均正常,除了form-data和x-www....的那俩表格,那俩表格需要我们之后的函数中进行初始化才会正常。我们现在要接着弄前端dom的元素展示功能。


然后是保存/取消按钮。这俩个按钮我们照样放在右上角,所以位置应该是在h4标题之上,div的第一个子属性,并且是float属性:

微信图片_20220702123104.png

注意onclick调用的函数,也要加login_ ,效果如下:

微信图片_20220702123115.png

然后我们还需要一个最重要的部分,就是返回值提取设置。我们其他普通接口调用这个登陆态接口是为了什么?为了拿到token啊~,所以我们要写这个返回值设置。还要有提取结果展示:


在哪设置呢?我觉得就在返回体上开刀即可:

返回体目前是一个超大的显示框,很浪费,我们给它拆成三份:(要想各个元素显示在同一行,就用ul+li标签搞定,作者曾经走了不少弯路 才找到这个方法。)

微信图片_20220702123123.png

微信图片_20220702123128.png

<div class="tab-pane fade" id="login_response">
    <ul class="nav navbar-nav" style="width: 98%">
        <li style="width: 33%;">
            <textarea name="" id="login_response_body" disabled="disabled"
                      style="background-color: #e4f3f5;color: black;width: 100%;height: 300px"
                       placeholder="返回体"></textarea>
        </li>
        <li style="width: 33%;">
             <textarea name="" id="login_response_set"
                      style="color: black;width: 100%;height: 300px"
                       placeholder="请输入提取设置,=号左边写变量名,右边写绝对路径,多个用换行分开,格式例如:
sessId=/content/sessId
token=/data/token"></textarea>
        </li>
        <li style="width: 33%;">
             <textarea name="" id="login_response_result" disabled="disabled"
                      style="background-color: #f5eeec;color: black;width: 100%;height: 300px"
                       placeholder="提取结果"></textarea>
        </li>
    </ul>
</div>

效果如下,大家可以自己改改样式,注意id:微信图片_20220702123135.png

好了,到此,我们最终的登陆态接口的前端展示效果做完了。下一节就要开始写BOM层的各种script了。

最新源码在github。

相关文章
|
关系型数据库 MySQL 测试技术
【分享】AgileTC测试用例管理平台使用分享
AgileTC 是一个脑图样式测试用例管理平台,支持用例设计、执行与团队协作,帮助测试人员高效管理测试流程。
557 116
【分享】AgileTC测试用例管理平台使用分享
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
726 1
|
人工智能 数据可视化 测试技术
AI测试平台自动遍历:低代码也能玩转全链路测试
AI测试平台的自动遍历功能,通过低代码配置实现Web和App的自动化测试。用户只需提供入口链接或安装包及简单配置,即可自动完成页面结构识别、操作验证,并生成可视化报告,大幅提升测试效率,特别适用于高频迭代项目。
|
12月前
|
安全 Java 测试技术
《深入理解Spring》单元测试——高质量代码的守护神
Spring测试框架提供全面的单元与集成测试支持,通过`@SpringBootTest`、`@WebMvcTest`等注解实现分层测试,结合Mockito、Testcontainers和Jacoco,保障代码质量,提升开发效率与系统稳定性。
|
人工智能 边缘计算 搜索推荐
AI产品测试学习路径全解析:从业务场景到代码实践
本文深入解析AI测试的核心技能与学习路径,涵盖业务理解、模型指标计算与性能测试三大阶段,助力掌握分类、推荐系统、计算机视觉等多场景测试方法,提升AI产品质量保障能力。
|
人工智能 自然语言处理 测试技术
AI测试平台的用例管理实践:写得清晰,管得高效,执行更智能
在测试过程中,用例分散、步骤模糊、回归测试效率低等问题常困扰团队。霍格沃兹测试开发学社推出的AI测试平台,打通“用例编写—集中管理—智能执行”全流程,提升测试效率与覆盖率。平台支持标准化用例编写、统一管理操作及智能执行,助力测试团队高效协作,释放更多精力优化测试策略。目前平台已开放内测,欢迎试用体验!
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1775 23
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
2446 24
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
1356 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡