• 律飛
    2020-01-07
    JMeter 的 CSV Data Set Config 功能用来从文件中读取数据行,并将它们拆分后存储到变量中。个人理解,Recycle on EOF的优先级高于Stop thread on EOF,也就是说,需要先判断Recycle on EOF,如果是Flase,直接在文件结束时就停止了线程,根本不考虑Stop thread on EOF参数值;如果是True,就要根据Stop thread on EOF参数值来确定线程是否停止运行。在明白组合逻辑关系后,可以更高效的设置参数、更准确的达到测试目的。
    各种测试工具有各种测试功能,可能其中就会存在有关联的参数配置,这也需要我们特别关注。如果查阅资料还不能清晰认识,就按老师的做法,通过对不同组合进行实验,最终弄清楚组合关系,归纳总结出优先顺序,从而在平时测试中帮助我们快速有效地找到最优的组合。
    展开

    作者回复: 我觉得你写的比我写的好。哈。

     1
     2
  • @zzw
    2020-01-20
    第一个问题:为什么参数化数据要符合生产环境的数据分布?

    在「01丨性能综述:性能测试的概念到底是什么」中已经讲过,性能模型中的业务模型是真实场景的抽象,即需要的数据通常都是从生产环境中的数据中统计来的,其关键就是「数据必须保证仿真」。
    那么性能测试的时候我们需要特别注意压测流量以及相关的数据,必须保证它们的多样化和代表性,否则会导致测试结果会严重失真。
    比如,当使用相同的测试数据进行重复测试时,如果压测请求不够大,那么各种缓存可能会严重影响测试结果。

    第二个问题:为什么参数化数据要关注组合逻辑关系,而不是随意设置组合?

    因为参数化数据要组合逻辑关系会直接影响参数化数据的分布情况,即数据是否均匀?数据是否稳定?是保否证测试时间足够长?满足测试的负载请求足够多和数据足够多样化,从而最大限度地减少或者掩盖缓存等其他因素的影响。
    展开

    作者回复: 已经理解的很深刻了。

    
     1
  • 你比昨天快乐🌻
    2020-01-16
    CSV Data Set Config的Sharing mode选择了Edit,准备有两个线程组名称分别为:Thread Group1、Thread Group2,参数化文件只想在Thread Group1中使用,不想在Thread Group2中使用,Edit 选项,在这里我有输入:SharedWithThreadGroup1(或SharedWithThreadGroupThreadGroup1)。期望结果应该是:Thread Group1能从参数化文件取到值,Thread Group2取不到值,但是执行结果是:Thread Group1和Thread Group2取值完成一样,请问哪里问题出在哪里呢

    作者回复: 线程组名输入错了吧。

    
    
  • 小老鼠
    2020-01-10
    1,EOF处理不同对性能测试有什么影响?2,参数化用DB来获取,对性能测试结果的有无影响。

    作者回复: 我觉得你思考问题的角度和我要说的话题都不在一个层面上。
    1. EOF多明显对测试有影响,那使用数据的逻辑,我都列的那么清晰了,已经说明了影响了。
    2. 参数化用不用DB来做,只会影响压力工具的处理过程。我反复强调了,对什么样的工具来做压力,对性能差的好的性能工具,都无所谓。像jmeter就不是性能高的工具。但是现在还是有很多人在用,对服务器的性能测试结果肯定是没什么影响的,服务器的处理能力是服务器的,是另一个角度。

    
    
  • 晴空
    2020-01-08
    1、为什么参数化数据要符合生产环境的数据分布?
    尽可能少的数据应用覆盖到尽可能多的测试场景中。
    2、为什么参数化数据要关注组合逻辑关系,而不是随意设置组合?
    关注组合逻辑关系,可以理解为了解数据生成规则,换句话说也就是有效的数据是有哪些实际业务场景产生的。

    无论是问题1还是问题2,都是以实际业务场景为基础进行展开测试与规划的
    展开

    作者回复: 理解的很对。

    
    
  • 善行通
    2020-01-06
    感谢老师总结;
    1、罗列出需要参数化的数据及相对应的关系;
    2、将参数化数据从数据库中取出或设计对应的生成规则;
    3、合理地将参数化数据保存在不同的文件中;
    4、在压力工具中设置相应的参数组合关系,以便实模拟真实场景

    之前做行测不太去理解:
    Recycle on EOF? :这里有三个选择,False、True 和 Edit。
    Stop thread on EOF?:这里有三个选择,False、True 和 Edit。含义和上面一致。
    Sharing mode : 这里有四个选择,All threads、Current thread group、Current thread、Edit。
    这几个用户,经过老师这样一步一步分析,收获很大,谢谢老师分享

    第一个问题:为什么参数化数据要符合生产环境的数据分布?
    1、减少数据命中率;
    2、减少缓存命中率;
    3、符合性能压测价值,测试结果更真实;

    第二个:为什么参数化数据要关注组合逻辑关系,而不是随意设置组合?
    1、业务规则决定参数文件不能随便组合;
    2、如果随意组合参数,会影响事务成功率;
    展开

    作者回复: 有收获我就值得了。

    
    
我们在线,来聊聊吧