• 呵呵了。你能说一个框架是你心目中完美的框架吗,它就没有缺点吗?
    “如果框架都无法实现,工具和平台就更不能。” 为什么我不能改框架的源码来实现自己的需求呢?为什么我不能组合多个框架的优点来达到自己的目的呢?
    框架总有缺点,而我做工具或者平台,就是组合各个框架的优点,让其合并在一起。相信各位做平台的也是这个目的。
    “工具和平台解决的是 不让你写代码做接口测试 !” 就比如接口测试的断言部分吧,postman 都是写脚本的形式来断言的,用我截图给你吗?是叫 Javascript ,

    怎么了,你要告诉我 postman 不行,它不是一个成功的工具,是因为它让我写代码了,让我写了代码才能做接口测试了。那你的工具超过 postman 了吗?
    不是说想怼你,你怼别人的时候最好想想自己说的是啥,你到底想清楚问题没有。

  • 等你发现测试框架无法满足你的时候,你就会想写一个工具来满足你的要求了,写完工具会想何不共享一下?这就做成了一个平台。

  • 你这个报错是 Jmeter 自己报的,建议查一下配置。
    之前我也说过,Jmeter 对分布式节点 slave 的管理很弱,这是源生的弊端。不过正常都会自动停止的。分布式停不下来建议直接重启节点没关系的。
    调试报告仅仅是调试,我还没想分布式那么远,有点儿太复杂了。

  • 建议你仔细了解一下 Jmeter 的自有的压力分布的实现。平台对 Jmeter 的压力分布实现原理配置等没有做任何修改,做的仅是优化。
    节点机的压力负载调节也是在改动原 jmx 文件在内存中对象的方式来实现的。

  • 大佬说的很不错。我最近也在思考这方面的东西。

    1. 前端项目首页要炫,这也是各个收费的平台共性吧。
    2. 接口设置操作要和 postman 主流靠拢,包括断言的设置(postman 是直接写脚本断言)。
    3. 接口要有清晰的层级关系,比如大佬所述的用例集(这部分平台内好几个开源的接口测试平台已经有所实现,且实现的不错),这部分其实 postman 也有,叫 collections。
    4. 要有历史数据或者日志,这部分 postman 也有,eolinker 也有历史数据,日志的话见仁见智。
    5. 能进行简单的性能测试,postman 也有,部分平台内的开源平台也有。
    6. 要有上传下载工作,并且最好格式和 postman 对接,或者和 httprunner 对接,最好不要自创一套规范(成本高)。
    7. 接口测试报告要炫(allure 貌似不错)。性能测试报告另算。
    8. 要和公司内部员工数据对接,如登录使用域账号(钉钉),邮件发送配置公司邮箱。
    9. 权限划分,这个比较基础了。
    10. Jenkins 的集成。

    postman 是一个标杆,比如它还有切换 workSpace 的功能(eolinker 也有),都非常值得借鉴。还比如 postman 能自动记录接口请求返回的 response 的 cookie 数据,这些细节令我深思。

    另外,专业和优秀的一套 UI 真的很重要。

  • 是的。
    但是目前平台支持压力机压力负载配置,比如可以把两个压力机承担的都是原脚本压力的 50% ,这样加起来就是 100 了。
    可以调大或者调小压力。
    源生的 Jmeter 的分布式节点机的坑还是不少的,建议压测前重启。

  • 在重写 + 重构 + 改写这个项目。
    UI 设计,产品设计的挺棒的。

  • 集群的控制是 Jmeter 自带的,你如果看 Jmeter 源码就知道了。
    平台只是调用 Jmeter 的 API,如果配置了集群就会使用集群。

  • 学习了。
    《Java 开发手册》是一本比较神的书,我精读的是 1.3 版本的,对写代码帮助很大。
    这五道题其实还好吧,如果是经常刷题的,这种难度级别的题,能找出来不下 500 道。当然我是被虐的习惯了。

  • 支持

  • 感谢对我发言的肯定。

  • 最近在面试,也在探索这方面的知识。补充一些这里没有的吧,个人浅见。

    1. 面试问题要搞清楚,面试节奏要紧促一些,别面试官思考时间太长,到时间了问不了几个方面的问题,不全面。
    2. 岗位述求要搞清楚,也就是岗位要求技能的权重要搞清楚,权重低的问题少一些,权重高的问题多一些。
    3. 不要太考虑这个人的性价比,比如水平超过要的钱很多,但是要的特别少的那种,不要过多考虑,不是说省钱都不要,而是岗位的匹配是第一位的。
    4. 及时送走不符合的候选人,不要浪费其他面试官的时间(扎心抱歉)。
    5. 如果招的是自己组内的人,自己要带的人,那么无论自己是几面,都是第一责任人,就是说这个人的决定权必然在自己手里,候选人的去留自己一定要有数,不能说自己没看上,希望别人再帮忙鉴定一下,帮自己看一下。自己组内的人必须自己决定,别人的眼光只是辅助。
    6. 越后面的面试官越责任越重,当然这个在公司内可能说法很多,比如领导面说过了,然后你说不过可能不太好。但是宗旨是相同的,越后面的面试官责任越重,越后面的面试官越要有自己独到的见解,独到的考察点。
    7. 几轮面试应该有侧重,就比如 HR 面的是挑战 + 证实一样,我理解是一面全面基础,二面细化,三面行业/岗位格局。当然各个公司情况不同,可能一面就全问了也没啥(时间要控制)。
    8. 面试不代表一切,也是看缘分,我挂掉过很多人,也并不是完全客观,也不是说她/他来了肯定不行。我一直在检讨。信任需要建立,互相信任是合作的基础。

  • 是有这个类的。

  • 可以尝试生成一个比较稳定的自动化脚本模板。未来的迭代都是向这个模板添加特定的需求。可以生成一批不同接口的 jmx 文件,让其成为素材,每次添加即可。当然这需要双开或者多开 Jmeter 来编辑。
    建议每一个迭代都要保存好 jmx 文件,这样面对新的迭代可以参考历史文件,让工作量降低。
    同时要写好每一个请求的注释,要能真正区分 sampler 的作用和特点。
    Jmeter 是有一些缺点无法避免的,比如是一个本地工具无法和线上文档匹配,本身是脚本文件本地保存查找等,麻烦是必然的。需要结合其它工具来使用。

  • 正常 JVM 环境中是有这个类的。你用的 Jmeter 是 5.1.1 吗。

  • 可以 debug 一下看看问题在哪里。详细的可以提一个 issue。

  • 插件需要加载平台的 JVM 环境中。这个需要自己手动加载,如在 IDE 中引用三方 jar 包,pom 文件制定插件所在的目录等。

  • 5.1.1 目前支持的不好,我都是用的 4.0 的。

  • 插件自己加到环境里。

  • 赞,做的还是不错的。

  • “每个线程组线程数的比例,jmeter 原生本身会做控制,这个并不需要平台介入吧”,据我了解,Jmeter 本身控制不了比例,能控制的仅是数量。平台需要根据比例计算出数量,传给 Jmeter 让其执行。
    这种解决办法也有吧,一个线程组一个脚本,多个脚本同时执行达到多个线程组同时进行的效果,这也是可以的,可以避开问题,曲线救国吧。

  • 目前没做这么细。
    每个 slave 执行的是相同的脚本,像线程数,步长等等都是一样的,本身 Jmeter 并没有 master 配置一个总的线程数,其他 slave 去平分这些线程数的概念(或者权重平分),都是 master 打算要执行一个脚本,其他 slave 都是按照这个来执行,这是两种压力设计,很明显你说的这种 Jmeter 本身就没有。
    你说的这种其实要考虑的很多,比如一个脚本内配置了多个线程组,每个线程组的线程数都不一样,那你说的 “直到达到指定线程数量” 要做的就比较多了,比如要保持住每个线程组线程数的比例,要同步增加,或者说 “指定线程数量” 要细分化,即对每一个线程数都要有一个指定的线程数量,这样如果几个线程组还行,如果千百个线程组,你这要如何细分。这就是举个例子吧,意思是说实际要做的没有那么简单。
    Jmeter 这种压力设计是有它的考虑的,我也认为是最省事的。
    平台目前不想颠覆 Jmeter 的理念,平台的核心目前还是保持住 Jmeter 的所有特性,是保持,不是另立门户。

  • 你好,感谢对平台的肯定。
    定时任务这块如果是要结合 web 平台来做,肯定是需要代码量的,这部分我还没开发。如果是基于 Jmeter 的,那么使用 Jmeter-Home 应该是可以的(这你也试过了可以,感谢),因为使用 Jmeter-Home 的原理就是执行 Jmx 脚本,和使用源生 Jmeter 是一样一样的。

    放弃 Jmeter5 是因为我当初在测试的时候,发现 Jmeter 5 对参数化文件支持的不好,具体我也忘记了,我们就是普通的使用回车换行的参数化文件,但那天是遇到了问题一直报请求失败,当时还没有调试脚本的功能,追查了很久发现回退 Jmeter 版本就没问题了,所以就一直保留 Jmeter4 的 api 方式,一直不升级。

    以上是对你问题的一些回答吧,下面我扯点儿别的。

    1. 定时任务为啥一直不做呢,因为我觉得定时任务总有一些弊端和不太实用的。 性能测试是一个严肃的事情,说每时每刻都需要人盯着都不为过,那么有了定时任务让其自动执行是不太安全的。可能你会说轻量级的相当于回归测试的压测需要定时执行,来检查系统的健康程度,我仍然认为这不是不盯着让它自动运行的理由,不够严肃,一旦出了问题得不偿失(比如各种脏数据问题内存的数据库的,给流量高峰添乱等等)。 说不太实用是因为除了定时任务,更需要的往往是钩子执行,如代码提交之后就进行性能测试,这样更有意义一些,就是说不仅仅时间是触发条件,其他操作也要成为性能测试的触发条件,结合起来才是最实用的。而这种开发量稍微大了些,稍微偏离了性能测试平台的主核心任务,这个需要集成更多的三方包来搞,或者说业内对这里已经有方案如 Jenkins+Jmeter 还是可以的。 同时 Jmeter 自己也有对定时任务的实现,简单的定时任务完全可以胜任,所以平台对这部分需求也不急迫。
    2. Jmeter 4 已经满足了我现在的所有需求,所以我是觉得没必要赶潮流硬上 Jmeter 5,所以我也不升级。未来如果有场景非 Jmeter 5 不可,那我肯定会升级的。
  • 这个功能已经废弃。后续都删掉。

  • 云服务器和本地服务器很类似吧。建议你本地搭完环境之后和你们运维合作,搭建阿里云服务器。
    因为涉及服务器的开销价钱,用户权限,端口权限,磁盘文件大小等等。