接口测试平台代码实现59-首页重构7

简介: 本节基本就是最后一节,上节我们本来以为很简单的重构,结果遇到了恶心的第三方组件bug,所以我就用刷新套路来绕过了这个问题,还省去了clear清空函数,顺便给大家讲了下新增的第二万能参数ooid。在最后我们解决了url,host,header的显示问题。本节就剩处理一下 请求方式/请求体类型/请求体了。

打开我们的home.html,在下图位置新建一个script,记住,是script,并不是一个js函数,如果是js函数的话我们必须要调用才能触发,而我们直接把js代码写在外面,那就会一进入这个页面就会触发了。微信图片_20220624132551.png

我们先来处理请求体类型:微信图片_20220624132615.png

代码含义:先判断进来的这个api_method 是不是空的,如果不是,那么它的值一定是post/get/put/delete ,恰好符合我们这个请求方式select下拉框的value,所以直接赋值就可以实现。

微信图片_20220624132640.png


然后继续:

(代码较多,大家复制即可)

<script>
    // 自动设置请求类型
    if( "{{ log.api_method }}" != ''){
        document.getElementById('ts_method').value = "{{ log.api_method }}";
    }
    //请求体类型 //请求体
    if("{{ log.body_method }}" != ''){
        console.log("{{ log.body_method }}");
        console.log("{{ log.api_body }}");
        var body_method = '#'+"{{ log.body_method }}";
        $("li a[href="+body_method+"]").click();
        if("{{ log.body_method }}" == 'Text'){
            document.getElementById('raw_Text').value = "{{ log.api_body }}";
        }
        if("{{ log.body_method }}" == 'JavaScript'){
            document.getElementById('raw_JavaScript').value = "{{ log.api_body }}";
        }
        if("{{ log.body_method }}" == 'Json'){
            document.getElementById('raw_Json').value = "{{ log.api_body }}";
        }
        if("{{ log.body_method }}" == 'Html'){
            document.getElementById('raw_Html').value = "{{ log.api_body }}";
        }
        if("{{ log.body_method }}" == 'Xml'){
            document.getElementById('raw_Xml').value = "{{ log.api_body }}";
        }
        if("{{ log.body_method }}" == 'form-data'){
            var tbody = document.getElementById('mytbody'); // 定位表格中的tbody部分
            body = eval("{{ log.api_body }}"); //把这个像列表的字符串请求体变成真正的列表
            for(var i=0;i<body.length;i++){ // 遍历这个请求体列表
                key = body[i][0]; //拿出每一个键值对的key
                value = body[i][1];//拿出每一个键值对的value
                var childs_tr = tbody.children ;//获取到这个表格下面所有的tr组成的大列表
                // 每个tr下的children得到的是 td列表,只有俩个。
                childs_tr[i].children[0].innerText = key; //第一个td放key
                childs_tr[i].children[1].innerText = value;//第二个td放value
                //判断是否是最后一次遍历,来决定是否点击新增参数按钮
                if(i<body.length-1){
                    document.getElementById('add').click()
                }
            }
        }
        if("{{ log.body_method }}" == 'x-www-form-urlencoded'){
            var tbody = document.getElementById('mytbody2'); // 定位表格中的tbody部分
            body = eval("{{ log.api_body }}"); //把这个像列表的字符串请求体变成真正的列表
            for(var i=0;i<body.length;i++){ // 遍历这个请求体列表
                key = body[i][0]; //拿出每一个键值对的key
                value = body[i][1];//拿出每一个键值对的value
                var childs_tr = tbody.children ;//获取到这个表格下面所有的tr组成的大列表
                // 每个tr下的children得到的是 td列表,只有俩个。
                childs_tr[i].children[0].innerText = key; //第一个td放key
                childs_tr[i].children[1].innerText = value;//第二个td放value
                //判断是否是最后一次遍历,来决定是否点击新增参数按钮
                if(i<body.length-1){
                    document.getElementById('add2').click()
                }
            }
        }
    }
</script>


好了我们现在可以刷新页面测试了微信图片_20220624132753.png

经过测试,发现除了form-data/x-www...之外的 记录都可以正常刷新并显示出来。

但是form-data这种类型却报错了。

微信图片_20220624132822.png

看到原因,是我们的二维数组当中的 引号居然传过来就变成了&quot; 这就是被转码了成为特殊字串了。

   导致我们js的eval 无法解析报错。

在后台我们打印发现 并没有问题。

微信图片_20220624132845.png那么前端要怎么处理呢?其实有很多办法。

比如正则替换:把所有&quot;都换成双引号。

微信图片_20220624132930.png

g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

m 执行多行匹配。


好了再试试,发现可以正常了。

微信图片_20220624132955.png

好了本节基本结束。欢迎持续关注。作者会经常无意埋下一些坑,然后再讲解解决办法的时候引入新的小技巧。请别见怪!作者就是踩了无数个坑,然后埋上土爬出来 才走到今天的。希望大家理解。

   首页明天才是最后一节课,会解决几个小bug,异常处理,还有稍微美化一下。(什么?开头不是说了本节就是最后一节了?不不不,仔细看我说的是基本是最后一节)

相关文章
|
8天前
|
算法 Java 测试技术
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
40 13
|
18天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
70 11
|
2月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
65 1
|
2月前
|
人工智能 供应链 安全
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
|
2月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
70 3
|
2月前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
150 1
|
3月前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
82 2
|
2月前
|
监控 安全 测试技术
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
71 0
|
3月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
83 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
4月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
280 7
Jmeter实现WebSocket协议的接口测试方法