【问题标题】:How to select two random values from two strings if both the strings contains same values如果两个字符串包含相同的值,如何从两个字符串中选择两个随机值
【发布时间】:2021-11-21 15:04:15
【问题描述】:

两个下拉菜单

1)数组_出发城市包含N个城市 aaa,bbb,ccc,ddd,eee,fff,......nnn

2)数组_到达城市包含N个城市 aaa,bbb,ccc,ddd,eee,fff,......nnn

想从两个字符串中随机选择两个城市,但两个城市不应该匹配

【问题讨论】:

    标签: jmeter controller


    【解决方案1】:

    您可以在JSR223 Sampler 中包含以下内容

    def cities =["aaa","bbb","ccc","ddd","eee","fff","test"]
    
    //Remove a random city and assign to dep_city
    cities.shuffle()
    def dep_city = cities.pop()
    
    //Remove a random city and assign to arrival_city
    cities.shuffle()
    def arrival_city= cities.pop()
    
    //Setting the variables 
    vars.put("dep_city", dep_city)
    vars.put("arrival_city", arrival_city)
    
    SampleResult.setIgnore() //Result is not generated  
    
    

    Groovy 用于脚本 Shuffle 用于随机重新排序元素 Pop 用于从列表中删除第一个元素

    【讨论】:

      【解决方案2】:

      首先我不认为你的方法是正确的,测试需要repeatable 并且你的“随机”逻辑可能会导致一个测试运行显示性能问题而下一个没有的情况,因为数据不同。

      所以考虑使用parameterization 可能更有意义,即将所有城市放入CSV 文件并使用CSV Data Set Config 读取它们。


      如果您真的希望您的测试使用随机数据,并且您在问题中拥有这些字符串形式的“数组”,您可以使用任何合适的JSR223 Test Element 和示例代码来实现随机化喜欢:

      def dep_array = 'aaa,bbb,ccc,ddd,eee,fff'
      def arr_array = 'aaa,bbb,ccc,ddd,eee,fff'
      
      def getRandomCity(String cities, Object prev) {
          def array = cities.split(',')
          def rv = array[org.apache.commons.lang3.RandomUtils.nextInt(0, array.size())]
          if (prev != null) {
              if (rv == prev) {
                  rv = getRandomCity(array.join(','), prev)
              }
          }
          return rv
      }
      
      def dep_city = getRandomCity(dep_array, null)
      
      def arr_city = getRandomCity(arr_array, dep_city)
      
      vars.put('dep_city', dep_city)
      vars.put('arr_city', arr_city)
      

      稍后您将能够在需要时访问 ${dep_city}${arr_city} 的值

      【讨论】:

        猜你喜欢
        • 2012-02-03
        • 1970-01-01
        • 1970-01-01
        • 2014-01-30
        • 1970-01-01
        • 2013-07-31
        • 2013-04-08
        • 2020-12-04
        • 2017-05-05
        相关资源
        最近更新 更多