接口测试平台代码实现37:接口请求的保存和取消

简介: 本节主要来讲一下,使用者在打开接口调试面板后,点击保存按钮,就会成功保存好,并且再次打开后,能显示出来呢?可能大家会觉得本节课没什么难度,就是简单的保存而已,但是实际上,本节是非常复杂的。因为接口的不同编码格式,我们保存起来的基本只有一个大字符串。要如何存储和展示是需要进行特殊设计的,类似 加密和解密,压缩和解压缩。

打开P_apis.html,先把取消功能写了:


微信图片_20220618204357.png如图在底部位置新增一个script,用来存放之后数个调试弹层的函数,请大家认真选好位置,因为本页面的后续div和script会非常非常多,如果不按照顺序和位置紧贴着写,很容易之后混乱,排查错误都费劲了

   好,在这个script中写一个简单的funciton,作用为取消调试弹层,也就是不保存任何数据,直接隐藏该弹层。然后给取消按钮的onclick的属性写成这个ts_close函数。微信图片_20220618204404.png

启动服务,刷新页面试一下:

发现已经可以成功关闭这个弹层了。

接下来我们写一个funciton,用来保存接口设置。

微信图片_20220618204410.png

注意,从现在开始,整个接口测试平台的开发难度会突然上一个台阶,这个保存函数也会非常巨大,请大家做好心里准备。毕竟之后还要上好几个难度台阶。

我们先来分析下这个保存函数的结构再开始落实:

首先

1.它要获取用户输入的所有数据

2.它要调用一个请求,把这些数据发给后台,中间要带上接口id

3.等到保存成功,它要关闭该调试弹层


好,我们刚刚做完了概要分析,现在需要进行详细设计:

三步中,后面俩步没什么可说的,主要是第一步,其中包含有以下小步骤:

1.获取请求方式

2.获取url

3.获取host

4.获取请求头

5.确认当前请求体的编码方式正在哪个页面

6.根据不同的编码方式页面,对其下面的请求体进行压缩

7.传递给后端的参数中,要有一个字段来记录请求体编码格式


好,已经基本分析完毕,具体如何进行请求体编码格式的压缩,我们会用一种很好理解并且接地气的方式进行。当然等到全平台系列结束后,同学可以自行升级/修改其中的压缩方式,但是建议不要现在就这样做,因为后续教程会依据本节的简单方式来进行开发。


好我们先来啃第一个步骤,获取所有数据:

首先是获取请求方式:,那就要给这个select加上id了。id=ts_method微信图片_20220618204417.png

然后在js函数中直接获取select的value即可:

微信图片_20220618204423.png

然后是url:

微信图片_20220618204428.png微信图片_20220618204436.png

然后是host:

微信图片_20220618204441.png

微信图片_20220618204449.png

然后是请求体header:

微信图片_20220618204457.png微信图片_20220618204505.png

好了,我们已经把简单的都写完了,我们加一个输出,来显示一下,用来检测我们之前写的这一大堆代码有没有问题:

微信图片_20220618204513.png

这里我们用alert 和 console.log都可以。大家看自己习惯吧。如果是console.log,则需要打开调试器-console,适合比较大型的数据排查


我们前面章节忽略了一个问题,就是我们input输入框的显示颜色都是白色,这样靠色了,所以我们要把三个输入框的color属性设置黑色:微信图片_20220618204518.png

最好我们要把保存按钮的onclick属性设置成ts_save函数:微信图片_20220618204525.png

好,让我们刷新页面,随便输入点东西,然后点击保存按钮看下显示:微信图片_20220618204530.png

看来是成功了,

接下来让我们删掉这个alert,来继续获取 用户当前的请求体设置方式:

这里我们要如何获取呢?通过观察,发现当我们点击不同的编码方式的标签页面时,对应的li的class属性会变成active 意思是活动状态。


那么我们可以通过jquery的简单代码来获取到 ul=mytab 下面所有li标签中class属性为active的那个li内的静态夹杂文案:微信图片_20220618204538.png微信图片_20220618204547.png

顺便alert弹窗显示测试一下:可以发现没问题:

微信图片_20220618204555.png微信图片_20220618204602.png

然后我们写一个判断,来判断不同的编码方式下,我们获取不同的小div中的数据,然后进行不同的压缩成一个列表或字符串。


先判断为none时的请求体吧,直接为空就可以,算是偷懒的一种行为微信图片_20220618204609.png

在其他的判断下面因为都比较复杂,所以我们一个一个来分析。


为form-data的时候,用户写的明显是一张表格,我们要如何把其中的二维数据拿到呢?变成一个字符串好还是一个列表呢?

当然是列表。

按照如下代码即可:

微信图片_20220618204617.png

if(ts_body_method == 'form-data'){
      var ts_api_body = []; //新建这个空列表用来存放后续的数据
      var tbody_ = $("table#mytable tbody")[0]; //获取该表格的内容部分
      var trlist = tbody_.children ; //获取下面所有tr,每个tr就是一个键值对实际上
      for(var i=0;i<trlist.length;i++) {
          var tdarr = trlist[i].children; // 获取tr下的俩个td
          var key = tdarr[0].innerText; // 获取key
          var value = tdarr[1].innerText; // 获取value
          ts_api_body.push([key, value]);// 作为一个数组,存放到这个大数组里。
      }
      console.log(ts_api_body)
  }

测试结果如下:

微信图片_20220618204624.png

看来是已经存储成功了。


本节内容到这里就暂时停下,大家好好消化一下。下节课要处理掉剩余的编码格式。


相关文章
|
18天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
70 11
|
2月前
|
人工智能 供应链 安全
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
|
2月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
70 3
|
2月前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
150 1
|
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协议的接口测试方法
|
4月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
289 3
快速上手|HTTP 接口功能自动化测试
|
4月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
60 5
|
3月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
50 0