JMeter script 7: Cách tạo random String/Number

Dùng random String hay Number là 1 task thường gặp trong làm performance test. Bạn có thể dùng 1 trong 2 cách dưới đây để làm việc này.

I. Sử dụng function helper

Đây là các ký tự để bạn có thể copy và làm theo mà không phải gõ tay. =))))

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

Sau đó chúng ta chỉ cần dùng thẳng biến này là được.

def text = "${__RandomString(5,ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,)}"
log.info(text)
  • Điểm mạnh: đơn giản, ko phải suy nghĩ
  • Điểm yếu: làm mất luôn tính năng Cache compiled script if available của JSR223, có nghĩa là mỗi lần run cái này, nó phải compile lại code, chứ ko thể compile 1 lần rồi cứ thế sử dụng được. Điều này dẫn đến performance của JMeter sẽ bị ảnh hưởng, tuy nhiên nếu code ngắn hoặc số lần run cái script này ít thì mình nghĩ mất 1 chút time (tính bằng ms) là không đáng kể.

II. Dùng code

Bản thân JMeter là 1 Java app, nó đã có sẵn thư viện apache-common, chúng ta có thể import thư viện đó vào script và dùng các class có sẵn của nó.

import org.apache.commons.lang3.RandomStringUtils
import org.apache.commons.lang3.RandomUtils
import org.apache.commons.lang3.RandomStringUtils
import org.apache.commons.lang3.RandomUtils

def text2 = RandomStringUtils.randomAlphabetic(6)
log.info("random text2 = {}", text2)

def num = RandomUtils.nextInt(0, 1000)
log.info("random num = {}", num)

Bạn có thể tự tìm hiểu thêm các method khác của 2 class trên ở đây:

  • RandomStringUtils
  • RandomUtils, mặc dù class này đã bị thông báo là deprecated do việc random của nó không đủ tốt cho security nhưng mà mình thấy nó chả ảnh hưởng gì đến việc chúng ta làm JMeter nên mình ko tìm giải pháp thay thế cho nó nữa.

Cách sử dụng code như này

  • Điểm mạnh: script sẽ được cache hoàn toàn.
  • Điểm yếu: phải mất thời gian mò mẫm 1 chút

III. Kết luận

Cả 2 cách trên đều có thể áp dụng được cho JMeter được, tuy nhiên mình thích cách 2 hơn vì mình nghĩ là đã là script thì nên code hoàn toàn (suy nghĩ cá nhân), còn tất nhiên là tùy bạn thôi, chọn cách nào cũng được.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments