专栏首页云端漫步http server测试
原创

http server测试

在对http服务测试时,我们可以通过两种方式来完成,一种基于http服务,一种基于自带的测试包来完成。

示例代码

  • 针对测试handle函数进行测试
func TestHelloHandleFunc(t *testing.T) {
	rw := httptest.NewRecorder()
	req := httptest.NewRequest(http.MethodPost, "/hello, nil)
	handleHello(rw, req)

	if rw.Code != http.StatusOK {
		t.Errorf("status code not ok, status code is %v", rw.Code)
	}

}
  • 模拟启动服务 执行指定测试函数命令go test -run=TestHTTPServer
func TestHTTPServer(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(handleHello))
	defer ts.Close()

	log.Printf("server url: %s", ts.URL)

	testURL := ts.URL + "/hello
	resp, err := http.Get(testURL)
	if err != nil {
		t.Error(err)
		return
	}
	if g, w := resp.StatusCode, http.StatusOK; g != w {
		t.Errorf("status code = %q; want %q", g, w)
		return
	}
}
  • 测试覆盖统计
go test cover
go test -coverprofile=coverage.out
go tool cover -html=coverage.out
  • 竞争检测
go test -race

喜欢请关注“云端漫记", 持续为你更新

qrcode_for_gh_c30f7a9a484e_430.jpg

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • go:linkname的用法

    此处我们只看到函数签名,却看不到函数体,全局搜了一把,发现它的函数体却定义在src/runtime/proc.go中

    暮雨
  • go:linkname的用法

    此处我们只看到函数签名,却看不到函数体,全局搜了一把,发现它的函数体却定义在src/runtime/proc.go中

    暮雨
  • 使用vim打造go语言IDE

    在网上看到了一篇不错的关于vim的文章,参考网上给出的资料,花了些时间,将自己的vim打造成一块go语言的IDE。中间因为网路的问题,踩了很多的坑,就在此简单的...

    暮雨
  • go web: 1 创建项目

    网上关于建立项目大部分都是使用默认的http.ListenAndServe。然而这是有局限的一种用法。因为默认的http封装,没有办法设置服务器的超时。正确的姿...

    超级大猪
  • 用Python实现PCA和MDA降维和聚类

    降维和聚类算是无监督学习的重要领域,还是那句话,不论是PCA、MDA还是K-means聚类,网上大牛总结的杠杠的,给几个参考链接: http://www....

    机器学习AI算法工程
  • 测试网站页面网速的一个简单Python脚本

    无聊之余,下面分享一个Python小脚本:测试网站页面访问速度 [root@huanqiu ~]# vim pywww.py #!/usr/bin/python...

    洗尽了浮华
  • Python基础 变量

    Python的变量,于其说是变量更贴切的是标签。 由于对于Python来说一切皆为对象,因此变量可以理解为是对象的一个标签。

    py3study
  • Python 内置类型 dict, li

    近段时间发现一个 Python 连接数据库的连接是线程不安全的,结果惹得我哪哪儿都怀疑变量的多线程是否安全的问题,今天终于找到了正确答案,那就是 Python ...

    py3study
  • 蚂蚁庄园运动会星星球!3D项目入门实战!Cocos Creator 3d!

    ◇ 上一篇文章写了一个简易版的蚂蚁庄园登山赛,有小伙伴留言说想要看星星球的,那么就写起来吧!

    白玉无冰
  • 零基础入门 36:代码控制预设

    上一篇分享给大家带来了如何通过菜单栏呼出一个自定义的窗口,不知道大家消化的如何了呢?

    韩东吉

扫码关注云+社区

领取腾讯云代金券