【测试平台系列】第一章 手撸压力机(五)- 结构化http请求配置

简介: 我们现在将上一级称之为TestObject(测试对象),现在我们梳理一下TO(测试对象简称,以后的文章中TO都代表测试对象)都需要哪些字段。

上一篇我们讲解了https如何进行认证,并将结构体进行了优化和完善,剩下的高级选项配置我们在以后再补充。接下来,我们继续为测试平台进行铺垫。现在我们已经完成了http请求的结构体,那么我们在测试平台中不可能只有http一种协议,所以我们还需要对上进行封装。
我们现在将上一级称之为TestObject(测试对象),现在我们梳理一下TO(测试对象简称,以后的文章中TO都代表测试对象)都需要哪些字段。

Name, 名称可以让我们见名知意
Id,   id可以作为唯一id来用,避免重复
ParentId, 父id让我们可以知道,该对象在哪个目录下
ObjectType, 对象类型,让我们知道它是什么类型的测试对象,比如http、websocket、dubbo等
ItemId, 项目Id, 可以知道它属于哪个项目
TeamId, 团队Id,  可以知道它属于哪个团队
SourceId, 源Id, 可以知道它引用的是哪个接口
ChannelId, 渠道Id, 可以知道它来自哪个渠道,比如yapi,postman等
ChannelType, 渠道类型, 同渠道Id

这样,我们大致知道了我们的TO都需要哪些字段,我们在model文件夹下新建test_object.go文件,TO结构体如下:

// Package model -----------------------------
// @file      : test_object.go
// @author    : 被测试耽误的大厨
// @contact   : 13383088061@163.com
// @time      : 2023/6/11 20:38
// -------------------------------------------
package model

type TestObject struct {
   Name        string // 对象名称
   Id          string // 唯一id
   ParentId    string // 父id
   ObjectType  string // 对象类型http、websocket、dubbo等
   ItemId      string // 项目Id
   TeamId      string // 团队Id
   SourceId    string // 源Id
   ChannelId   string // 渠道Id比如YApi,postman等
   ChannelType string // 渠道类型
   HttpRequest HttpRequest
}

因为在TO中已经有了Name,那么为了不必要的字段,我们将HttpRequest结构体的Name字段去掉,http_model.go文件中HttpRequest结构体如下:

package model

// HttpRequest http请求的结构
type HttpRequest struct {
   Url                string             // 接口uri
   Method             string             // 接口方法,Get Post Update...
   Headers            []Header           // 接口请求头
   Querys             []Query            // get请求时的url
   Cookies            []Cookie           // cookie
   Body               string             // 请求提
   HttpClientSettings HttpClientSettings // http客户端配置
}

现在我们编写TO的处理函数,test_object.go文件,如下:

// Package model -----------------------------
// @file      : test_object.go
// @author    : 被测试耽误的大厨
// @contact   : 13383088061@163.com
// @time      : 2023/6/11 20:38
// -------------------------------------------
package model

import (
   "kitchen-engine/client"
)

type TestObject struct {
   Name        string // 对象名称
   Id          string // 唯一id
   ParentId    string // 父id
   ObjectType  string // 对象类型http、websocket、dubbo等
   ItemId      string // 项目Id
   TeamId      string // 团队Id
   SourceId    string // 源Id
   ChannelId   string // 渠道Id比如YApi,postman等
   ChannelType string // 渠道类型
   HttpRequest HttpRequest
}

// Dispose 测试对象的处理函数,在go语言中 Dispose方法是TestObject对象的方法,其他对象不能使用

func (to TestObject) Dispose() {
   switch to.ObjectType {
   case HTTP1: // 由于我们有个多类型,为了方便统计,我们定义好变量,直接进行比对即可
      client.RequestHttp(to.HttpRequest)
   }
}

在这个方法中,我们有两个go的知识点需要了解:
第一个是func (x 对象) 方法名(),这种方式为该对象特有的方法,只有该对象本身及其实例可以使用,或者集成了该对象的对象使用。
第二个知识点, case HTTP1, HTTP1是我在constant.go中定义的常量,具体代码如下:

// Package model -----------------------------
// @file      : constant.go
// @author    : 被测试耽误的大厨
// @contact   : 13383088061@163.com
// @time      : 2023/6/11 21:14
// -------------------------------------------
package model

// go语言中使用const对常量进行声明,常量不可更改,后面随着对象或者其他常量的增加,我们会持续丰富常量表


// 测试对象常量
const (
   HTTP1 = "HTTP1.1"
)

好,今天我们先说到这里,下节,我们开始讲解如何使用log库。

相关文章
|
20天前
|
缓存 前端开发 API
|
8天前
|
JSON API 数据格式
Python中获取HTTP请求响应体的详解
本文介绍了如何使用Python的`requests`和`urllib`库发送HTTP请求并处理响应体。`requests`库简化了HTTP请求过程,适合快速开发;`urllib`库则更为底层,适用于性能要求较高的场景。文章详细演示了发送GET请求、处理JSON响应等常见操作。
|
14天前
|
前端开发 JavaScript Java
如何捕获和处理HTTP GET请求的异常
如何捕获和处理HTTP GET请求的异常
|
16天前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
16天前
|
安全
HTTP 协议的请求方法
【10月更文挑战第21天】
|
16天前
|
缓存 安全 前端开发
HTTP 协议的请求方法在实际应用中有哪些注意事项?
【10月更文挑战第29天】HTTP协议的请求方法在实际应用中需要根据具体的业务场景和需求,合理选择和使用,并注意各种方法的特点和限制,以确保网络通信的安全、高效和数据的一致性。
|
20天前
|
安全 API 数据安全/隐私保护
常见的HTTP请求方法
【10月更文挑战第25天】这些HTTP请求方法共同构成了客户端与服务器之间交互的基础,使得客户端能够根据不同的需求对服务器资源进行各种操作。在实际应用中,开发者需要根据具体的业务场景和资源的性质选择合适的请求方法来实现客户端与服务器之间的有效通信。
|
10天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
42 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
63 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
242 7
Jmeter实现WebSocket协议的接口测试方法

热门文章

最新文章