【测试平台系列】第一章 手撸压力机(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
分享
相关文章
HTTP常见的请求方法、响应状态码、接口规范介绍
本文详细介绍了HTTP常见的请求方法、响应状态码和接口规范。通过理解和掌握这些内容,开发者可以更好地设计和实现W
189 83
动态URL构建与HTTP请求的Kotlin实现
动态URL构建与HTTP请求的Kotlin实现
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
103 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
72 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
21天前
|
API
掌握 HTTP 请求的艺术:理解 cURL GET 语法
掌握 cURL GET 请求的语法和使用方法是 Web 开发和测试中的基本技能。通过灵活运用 cURL 提供的各种选项,可以高效地与 API 进行交互、调试网络请求,并自动化日常任务。希望本文能帮助读者更好地理解和使用 cURL,提高工作效率和代码质量。
34 7
Objective-C开发:从HTTP请求到文件存储的实战
Objective-C开发:从HTTP请求到文件存储的实战
HTTP 范围Range请求
HTTP范围请求是一种强大的技术,允许客户端请求资源的部分内容,提高了传输效率和用户体验。通过正确配置服务器和实现范围请求,可以在视频流、断点续传下载等场景中发挥重要作用。希望本文提供的详细介绍和示例代码能帮助您更好地理解和应用这一技术。
144 19
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。