前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >moco框架接口命中率统计实践

moco框架接口命中率统计实践

作者头像
FunTester
发布2021-05-31 11:01:23
3900
发布2021-05-31 11:01:23
举报
文章被收录于专栏:FunTester

在日常的工作中我们经常会用到各种各样的moco框架,我选用的就是二次开发moco API,增加了一些新功能也做了一些封装。感觉自己用起来还是非常舒服的,几分钟可以构建一个简单的测试服务,用来测试性能框架各种功能。

在之前的性能测试Demo中,我本机起了一个moco服务,写了一个简单的GET接口,用性能测试框架进行压力测试。结果喜人,单机配置「1G内存」「FunTester」测试框架对本机的moco服务QPS打开了50000+。有图为证:

50000+QPS见证

在这个过程中,发现moco API中已经有提供计数器的功能,就是com.github.dreamhead.moco.MocoRequestHit类,提供moco接口命中统计的功能。

这个类功能较为简单,提供的方法比较少,都是一些断言的功能。

首先分享一下基本语法:

代码语言:javascript
复制
        def monitor = getHitMonitor()

        def server = getServer(12345, "${getMark()}.log", monitor)

        monitor.verify(urlStartsWith("/b"), atLeast(2))`

其中monitor是创建好的MocoRequestHit对象,通过构造方法传入httpserver中,然后在httpserver运行中对其中的接口命中率进行断言。

断言语法如下:

代码语言:javascript
复制
        try {
            monitor.verify(urlStartsWith("/m"), never())
            monitor.verify(urlMatcher("/t"), once())
            monitor.verify(urlOnly("/a"), times(1))
            monitor.verify(urlEndWith("/b"), atLeast(2))
            monitor.verify(urlContain("/"), atMost(10))
            monitor.verify(urlEndWith("/"), between(12, 22))
            monitor.verify(unexpected(), never())
        } catch (e) {
            logger.warn(e)
        }

这里需要用try-catch捕获异常,不然当前线程终止,无法执行后面的结束操作。

下面我手动翻译一下moco API文档。

  • never():从来没有被调用过;
  • once():只被调用过一次;
  • times(int i):该方法被调用过i次;
  • atLeast(int i):该方法至少被调用过i次;
  • atMost(int i):该方法最多被调用过i次;
  • between(int i,int j):该方法被调用次数在ij之间;
  • unexpected():未命中;
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FunTester 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
测试服务
测试服务 WeTest 包括标准兼容测试、专家兼容测试、手游安全测试、远程调试等多款产品,服务于海量腾讯精品游戏,涵盖兼容测试、压力测试、性能测试、安全测试、远程调试等多个方向,立体化安全防护体系,保卫您的信息安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档