Skip to content

把Http接口功能测试和性能测试结合起来的工具。

Notifications You must be signed in to change notification settings

rexlu01/go-API-automated-testing

Repository files navigation

go-API-automated-testing

1, 项目说明

1.1 一句话描述

go 实现针对Http(后续加grpc协议)接口的自动化测试和压测工具,把接口功能测试与接口压测结合起来

2 数据流转过程

image

3 细节思路

  • 利用Go-micro框架把用例生成、发送请求、产生并发、解析结果、整理压测数据及指标、结果展示等拆分成单独微服务
  • 准备做一个UI界面,主要的想法是后续压测数据可以实时展示,形成曲线图
  • 暴露给前端的API用Gin框架实现
  • 压测逻辑里会加上sentinel-go的限流功能已实现比如:在指定QPS下执行压测的场景
  • 过程数据用Redis,Mysql存储。Redis存过程数据,Mysql存最终场景的性能测试指标数据
  • 自动化的生成Excel格式的测试报告

4 过程中备注

  • 发送请求的方法按照协议http or grpc分开写,写个接口统一起来,方便以后扩展。
  • 过程数据用Redis and Mysql存储
  • 前端页面用micro web+gin, gin主要和前端HTML交互, micro web指定端口号(感觉不需要再暴露一层micro api --handler=http)
  • 需要解决两个问题:1 压测要按时长跑(https://www.jb51.net/article/128532.htm) 2 html要实时展示性能指标折线图 (http://www.360doc.com/content/20/0419/09/33093582_906988529.shtml)
  • web写定时任务,主要作用1,定时去拉标志位决定是否要拉数据,2,如果标志位是true就收集数据且展示在前端
  • 生成接口文件普通:protoc --proto_path=. --go_out=. --micro_out=. /.proto
  • 需要研究一下TPS的计算方式,用总次数/总时间这样算不准(todo)
  • 需要研究下*any.Any类型怎么传值
  • protobuf生成golang代码:protoc --proto_path=. --go_out=. proto/*.proto
  • 过程想复杂了,最多4个微服务搞定
  • web-ginonly-temporary 里的监控不显示数据
  • go的编译命令: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go bulid -o api-testing main.go

未完待续ing...

About

把Http接口功能测试和性能测试结合起来的工具。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published