【测试平台系列】第一章 手撸压力机(五)- 结构化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库。

相关文章
|
9月前
|
JSON 监控 API
掌握使用 requests 库发送各种 HTTP 请求和处理 API 响应
本课程全面讲解了使用 Python 的 requests 库进行 API 请求与响应处理,内容涵盖环境搭建、GET 与 POST 请求、参数传递、错误处理、请求头设置及实战项目开发。通过实例教学,学员可掌握基础到高级技巧,并完成天气查询应用等实际项目,适合初学者快速上手网络编程与 API 调用。
895 130
|
9月前
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
368 4
|
10月前
|
XML Ubuntu Java
如何在Ubuntu系统上安装和配置JMeter和Ant进行性能测试
进入包含 build.xml 的目录并执行:
489 13
|
10月前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
880 2
|
10月前
|
JSON JavaScript API
Python模拟HTTP请求实现APP自动签到
Python模拟HTTP请求实现APP自动签到
|
10月前
|
数据采集 JSON Go
Go语言实战案例:实现HTTP客户端请求并解析响应
本文是 Go 网络与并发实战系列的第 2 篇,详细介绍如何使用 Go 构建 HTTP 客户端,涵盖请求发送、响应解析、错误处理、Header 与 Body 提取等流程,并通过实战代码演示如何并发请求多个 URL,适合希望掌握 Go 网络编程基础的开发者。
|
11月前
|
缓存 JavaScript 前端开发
Vue 3 HTTP请求封装导致响应结果无法在浏览器中获取,尽管实际请求已成功。
通过逐项检查和调试,最终可以定位问题所在,修复后便能正常在浏览器中获取响应结果。
399 0
|
11月前
|
Go
如何在Go语言的HTTP请求中设置使用代理服务器
当使用特定的代理时,在某些情况下可能需要认证信息,认证信息可以在代理URL中提供,格式通常是:
712 0
|
安全 数据建模 应用服务中间件
HTTPS配置全记录
HTTPS配置全记录 环境 常见的部署环境和条件有以下几种情况组合: Apache+自签名证书 Apache+免费或商业证书 Nginx+自签名证书 Nginx+免费或商业证书 免费证书和商业证书本质上是一样的,都是可以被系统承认的证书,只是申请方式不同而已。
2920 0
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
393 19

热门文章

最新文章