【测试平台系列】第一章 手撸压力机(1)简单的http请求实现

简介: 测试平台,我们首先从手撸压力机开始。压力机也就是所谓的客户端,我们发送的请求是从这里开始对服务端的接口进行访问。

测试平台,我们首先从手撸压力机开始。压力机也就是所谓的客户端,我们发送的请求是从这里开始对服务端的接口进行访问。

首先从HTTP请求开始,我们采用Go语言进行开发,http(https)请求客户端我们使用fasthttp,官网地址:https://pkg.go.dev/github.com/valyala/fasthttp# 有兴趣的大家可以看看。

  1. 使用goland(ide)新建kitchen-engine项目(go 1.18.3)
  2. 在项目中新建main.go文件
  3. 新建server目录
  4. 在server目录新建http_client.go文件

http_client.go     构建简单的http请求客户端

package server


import (

"crypto/tls"

"fmt"

"github.com/valyala/fasthttp"

)


func RequestHttp() {

// 使用fasthttp 协程池


// 新建一个http请求

req := fasthttp.AcquireRequest()

defer fasthttp.ReleaseRequest(req)

// 新建一个http响应接受服务端的返回

resp := fasthttp.AcquireResponse()

defer fasthttp.ReleaseResponse(resp)


// 新建一个http的客户端

client := newHttpClient()


// 添加该请求的http方法:get、post、delete、update等等

req.Header.SetMethod("GET")


// 添加该请求的http的url

req.SetRequestURI("http://www.baidu.com")


// 开始请求

err := client.Do(req, resp)

if err != nil {

fmt.Sprintln("发送http请求错误:   ", err.Error())

}

      // 打印响应结果

fmt.Println("resp:    ", resp.String())


}


func newHttpClient() (httpClient *fasthttp.Client) {

// tls验证,关闭验证

tr := &tls.Config{

InsecureSkipVerify: true,

}



// 新建指针类型的客户端

httpClient = &fasthttp.Client{}

httpClient.TLSConfig = tr

return

}

  1. 在main.go调用请求方法

package main

// 注意,main方法必须在main包下,同一个包只能由一个名称。


import"kitchen-engine/server"


func main() {

// 调用server目录下的RequestHttp方法

server.RequestHttp()

}

  1. 运行程序,打印结果

resp:     HTTP/1.1 200 OK

Server: BWS/1.1

Date: Tue, 06 Jun 2023 08:47:55 GMT

Content-Type: text/html; charset=utf-8

Content-Length: 385396

Bdpagetype: 1

Bdqid: 0xe84c2188000230d1

Connection: keep-alive

Content-Security-Policy: frame-ancestors 'self' https://chat.baidu.comhttp://mirror-chat.baidu.comhttps://fj-chat.baidu.comhttps://hba-chat.baidu.comhttps://hbe-chat.baidu.comhttps://njjs-chat.baidu.comhttps://nj-chat.baidu.comhttps://hna-chat.baidu.comhttps://hnb-chat.baidu.comhttp://debug.baidu-int.com;

P3p: CP=" OTI DSP COR IVA OUR IND COM "

P3p: CP=" OTI DSP COR IVA OUR IND COM "

Traceid: 1686041274356516890616738790783028703441

Vary: Accept-Encoding

X-Ua-Compatible: IE=Edge,chrome=1

Set-Cookie: BAIDUID=6858ED69C7325FA94179EB79A1A57209:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com

Set-Cookie: BIDUPSID=6858ED69C7325FA94179EB79A1A57209; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com

Set-Cookie: PSTM=1686041274; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com

Set-Cookie: BAIDUID=6858ED69C7325FA92806F56F5DF35119:FG=1; max-age=31536000; expires=Wed, 05-Jun-24 08:47:54 GMT; domain=.baidu.com; path=/; version=1; comment=bd

Set-Cookie: BDSVRTM=0; path=/

Set-Cookie: BD_HOME=1; path=/

Set-Cookie: H_PS_PSSID=38515_36545_38687_38768_38843_38485_38814_38823_38838_38640_26350_38567_38669; path=/; domain=.baidu.com


<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta content="always" name="referrer"><meta name="theme-color" content="#ffffff"><meta name="description" content="全球领先的中文搜索引擎、致力于让网民更便捷地获取信息,找到所求。百度超过千亿的中文


先从这里开始讲起把,其中会涉及到很多go和http的知识,今天先让大家了解以下咱们的方式和节奏。后续深入学习。

目录
打赏
0
1
3
0
7
分享
相关文章
Android平台毫秒级低延迟HTTP-FLV直播播放器技术探究与实现
本文详细探讨了在Android平台上实现HTTP-FLV播放器的过程。首先介绍了FLV格式的基础,包括文件头和标签结构。接着分析了HTTP-FLV传输原理,通过分块传输实现流畅播放。然后重点讲解了播放器的实现步骤,涵盖网络请求、数据解析、音视频解码与渲染,以及播放控制功能的设计。文章还讨论了性能优化和网络异常处理的方法,并总结了HTTP-FLV播放器的技术价值,尤其是在特定场景下的应用意义。
76 11
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
107 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
72 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
HTTP代理IP响应速度测试方案设计与指标体系
随着数字化发展,网络安全、隐私保护及内容访问自由成为核心需求。HTTP代理因其技术优势成为热门选择。本文介绍HTTP代理IP响应速度测试方案,包括基础性能、稳定性、地理位置、实际应用、安全性测试及监控指标,推荐测试工具,并提供测试结果评估标准。
89 2
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
184 4
使用OkHttp进行HTTPS请求的Kotlin实现
使用OkHttp进行HTTPS请求的Kotlin实现
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
276 1
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
132 0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
在运行一个group by的sql时,抛出以下错误信息: Task with the most failures(4):  -----Task ID:  task_201411191723_723592_m_000004URL:  http://DDS0204.
1009 0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
最近在线上往hbase导数据,因为hbase写入能力比较强,没有太在意写的问题。让业务方进行历史数据的导入操作,中间发现一个问题,写入速度太快,并且业务数据集中到其中一个region,这个region无法split掉,处于不可用状态。
1370 0