ztcp - TCP 测试工具


Apache
跨平台
Google Go

软件简介

ztcp 是一个发送 TCP 命令的工具,本项目采用 go 语言编写,提供一个 tcp 客户端,专门用作各种 socket 测试,HTTP 测试。尤其是对
AJAX 请求很便利的支持。

安装

检查依赖库

本项目依赖

  • zgo : 需要它提供的一些便利函数

  • iconv-go : 需要用它来转换各种编码的 HTTP 页面

它们的安装很简单,请到它们的主页 查看其说明文档。我反正是这么装的:

# 安装 zgo
go get github.com/nutzam/zgo

# 安装 iconv-go
go get github.com/djimenez/iconv-go

确保这个代码库已经被装到你机器上了

自动安装

go get github.com/nutzam/ztcp

手动安装

自己手动从 github 下载代码后,放置在你的 $GOPATH 的 src/github.com/nutzam/ztcp 目录下

go install github.com/nutzam/ztcp

安装成功的标志

请检查你的 $GOPATH 是不是

$GOPATH
    [bin]
        ztcp       # <- 这个是编译好的可执行文件
    [src]
        [github.com]
            [nutzam]
                [ztcp]           # <- 这里是下载下来的源码
                    REAME.md
                    tcp.go
                    tcp_http.go
                    ...

[](https://github.com/nutzam/ztcp/blob/master/README.md#%E4%BD%9C%E4%B8%BA-

http-%E5%AE%A2%E6%88%B7%E7%AB%AF)作为 HTTP 客户端

本程序最主要的功能之一是作为一个 HTTP 客户端,下面是针对不通请求方式的具体用法。

普通
GET 请求

# 发送普通 GET 请求到 localhost
ztcp -http=:8080/app/doit?nm=f8f9

# 发送普通 GET 请求到 localhost:80
ztcp -http=/app/index.html

# 发送普通 GET 到 www.google.com
ztcp -http=www.google.com

普通
POST 请求

# 发送简单的参数
ztcp -http=:8080/app/doit -type=form -body="a=10&b=hello"

# 可以把请求内容记录到文件里
ztcp -http=:8080/app/doit -type=form -f=/home/xiaobai/form.txt
--------------------------- form.txt 文件的内容就是 :
a=10&b=hello

JSON
请求

# 发送 JSON 请求
ztcp -type=json -http=localhost:8080/app/doit -body="{nm:'zozoh'}"

# 采用文件的方式发送 JSON 请求
ztcp -type=json -http=localhost:8080/app/doit \
    -f=/home/xiaobai/test.json

控制
HTTP 返回的开关

# 是否显示请求,响应,的头部信息,默认为 "none"
tcp … -out=all,req,resp,none …

支持的 -type

ztcp 的参数 -type 中,我们根据你的参数会生成对应的 HTTP Content-Type。 下面是一个对照表:

form : application/x-www-form-urlencoded
text : text/plain
json : application/json
css  : text/css
html : text/html
png  : image/png
file : application/octet-stream

指定
Header

-http 模式下,你可以给定一个 JSON 字符串或者文件来定制你要发送的 HTTP HEADER

# 发送普通 cookie 字符串
ztcp -http=/app/doit -header="CNZZDATA1291011=cnzz_eid;"

# 发送文件里的 cookie 字符串
ztcp -http=/app/doit -headerf="mycookie.txt"

指定
Cookie

-http 模式下,为了更加便利的指定 cookie,提供了 cookie 选项。 它的优先级比通过 -header 要高。

# 发送普通 cookie 字符串
ztcp -http=/app/doit -cookie="CNZZDATA1291011=cnzz_eid;"

# 发送文件里的 cookie 字符串
ztcp -http=/app/doit -cookief="mycookie.txt"