• what:在传统 UI 模拟自动点点点的情况下,集成了 charles/fidder 的拦截 url 打断点,模拟各种 request 异常和 mock reponse 的功能。

    why:有些项目不仅需要 UI 校验一些正常调度成功的案例,也需要去校验一些异常调度后是否有符合预期的重试等修复操作。

    比如连接超时了是否会重试,这个就需要拦截特定 url 让它超时。

    比如返回一些异常 response 时,是否有其他的修复操作,但是正常 UI 点点点触发返回的 response 是正常的,需要拦截特定 url 去修改 response 使得能够满足异常场景,而无需操作修改后端。

    比如,测试监听埋点的时候,不仅要校验正常场景埋点上报,也要校验异常场景埋点上报,也需要拦截 url 超时或者 mock 异常 response 等操作。

    基于这样的前提,selenium / robotframework 等传统 UI 自动化测试框架满足以上条件定制开发改动较大,而 puppeteer 兼容了很多 chrome api ,可以快速定制开发扩展满足需求,故选择 puppeteer 进行改造。

    简而言之:对于一些异常调度的场景,不用再打开 charles/fidder 来抓包打断点,mock 请求,直接可以代码实现,并集成在 UI 自动化里面。

  • 七牛云 goc docker 部署 at July 06, 2020

    老哥稳!

  • 七牛云 goc docker 部署 at July 01, 2020

    改这里那服务中心岂不是只能注册指定端口的一个服务了😂 在 run 指令里面加个环境变量指定注册端口应该好一点

  • 七牛云 goc docker 部署 at July 01, 2020

    那你得改下代码,我看了一下源码好像并没有找到可以指定端口设置,随机开个端口连接了。

    func newLocalListener() net.Listener {
    l, err := net.Listen("tcp", "127.0.0.1:0")
    if err != nil {
    if l, err = net.Listen("tcp6", "[::1]:0"); err != nil {
    log.Fatalf("failed to listen on a port: %v", err)
    }
    }
    return l
    }
  • 七牛云 goc docker 部署 at July 01, 2020

    这个注册的 ip 是多少无所谓,你只要访问项目的指定端口进行测试,然后登录到这个项目的容器内部执行,goc profile > coverage.out && go tool cover -func=coverage.out,得到的也是这个容器的覆盖率结果。

  • 最新是 3.x 了:https://docs.httprunner.org/

  • 论少女粉到渐变粉😉

  • 深入浅出 Locust 实现 at June 18, 2020

    期待 goroutine

  • 每次数据本来就是在浮动的,这个是做了统计。出入比较大的话,考虑一下配置模式,默认是 no cache,同时无头和有头模式本身也存在一定的偏差,这个可以看 puppeteer 文档深入了解一下。

  • 公司有接口文档管理平台吗,如果有,用 httprunner 就行。如果没有,Yapi 比较集大成者,文档管理 + mock + 测试 一体化。

测试开发工程师