Go语言实现HTTP压测工具(1)——前期准备

文章目录

      • 0 前言
      • 1. 思路
          • 1.1 理解需求:
          • 1.2 基础知识
          • 1.3 样例参考
          • 1.4 开发
          • 1.5 调试
      • 2. 前期准备
          • 2.1 HTTP压力测试是什么,ApacehBench又是什么
          • 2.2 Nginx是什么,如何压测
      • 3. 基础学习
          • 3.1 Golang语言
      • 4. 环境安装

0 前言

具体的内容我还没整理,可以参见本周周报的每日记录 周报列表

一周之内要完成的任务。
在这里插入图片描述

1. 思路

1.1 理解需求:
  1. 什么是HTTP压测工具;
  2. 性能指标有哪些,要完成到哪个程度
1.2 基础知识
  1. golang语言的基础语法和使用;
  2. nginx的基础性能指标;
1.3 样例参考
  1. C语言开发的ApacheBench工具
1.4 开发
1.5 调试

2. 前期准备

2.1 HTTP压力测试是什么,ApacehBench又是什么

参考来源:
(总结)Web性能压力测试工具之ApacheBench(ab)详解
超实用压力测试工具-ab工具
http性能测试点滴

有一些需要区分的地方

-n = 1000	//总请求数
-c = 100	// 并发数

Time per request: 604.585 [ms] (mean)	// tpr1
Time per request: 6.444 [ms] (mean, across all concurrent requests)	// tpr2

这是啥意思呢,举个可能不太恰当的栗子

  • 并发数=100,你同时在和100个人聊天;
  • 总请求数,你要和这100个人,完成1000句聊天;

随之而来的是时间概念也类比一下

  • 前面一个tpr1,就是指和你聊天的这100个人,每个人等你回一条消息的等待时间;
  • 后一个tpr2,是指你接收这100个人发的所有消息,处理一条消息所需要的时间;

这也可以看出来,tpr1 = tpr2*c
可以这么理解,你回一条消息需要6毫秒,可是同时有100条消息进来(100个人每人一条),那你处理完不就是600ms,她们100个妹子就等了600ms啊(这手速可以)。

那么,我们重点关注的吞吐率,RPS,又是用哪个时间呢?正经的说法是每秒返回的HTTP连接数,也就是每秒响应的request。按照我举的例子来看,就是你一秒可以处理多少条聊天消息,再通俗一点,就和上面的tpr2成反比。这个想一下应该好理解吧,我发一条消息需要0.1s(tpr2),那我一秒不就可以发10条消息(RPS)。

2.2 Nginx是什么,如何压测

参考来源
Nginx可以做什么?看完这篇你就懂了
Nginx系列(一)–nginx是什么?
使用ab对nginx进行压力测试

3. 基础学习

3.1 Golang语言

参考资料:
《Go语言入门经典》,[英]乔治·奥尔波
Go 入门指南 - GitHub
Go 语言结构 & 基础语法-知乎

4. 环境安装

The Go Programming Language - Getting Started
Windows 平台下 LiteIDE 的安装和使用

本来打算在LInux环境下搞这个的,没办法,电脑又老又破,Windows卡。。。虽然装了双系统,好久没用过Linux,今天打开,弄半天弄不好环境,算了,世上无难事,只要肯放弃。

还是用Windows环境来搞了。

安装好了语言环境,稍微看了一下,挑了 LiteIDE 工具,但是后来装 MinGW 的时候一直报错,谷歌了好久,仍未解决。

golang go1.11.10.windows-amd64.msi
liteIDE LiteIDE X-HOME

你可能感兴趣的:(Golang语言)