JMeter script 6: Cách write file text, json, csv

Groovy support nhiều method khác nhau để write file, mình sẽ dùng cách dễ nhất cho dễ nhớ, những cách khác bạn tự tìm hiểu ở đây.

I. Write file text

Giả sử bạn có 1 response sau khi login như sau:

{
    "success": true,
    "message": "Login successful",
    "user": {
        "id": "123",
        "name": "John Doe",
        "email": "johndoe@example.com",
        "mobile_number": "555-555-5555",
        "is_active": true,
        "role": "user",
        "bank_data": {
            "bank_name": "Example Bank",
            "account_number": "1234567890",
            "routing_number": "012345678"
        },
        "company_data": {
            "company_name": "Acme Corporation",
            "employee_id": "ACME-123",
            "department": "Sales"
        },
        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
    }
}

Bạn muốn save token vào 1 file mới.

  • Step 1: Extract token từ response (bài số 2)
  • Step 2: Tạo object File
  • Step 3: Save token vào file
import groovy.json.*

def slurper = new JsonSlurper()
def response = slurper.parseText(prev.getResponseDataAsString())

def token = response.user.token

def file_token = new File ("C:/users/dunguyen/desktop/", "file_token.txt")

file_token << token

Mình dùng cú pháp file << content để save thông tin vào file.

II. Write file json

Vẫn là response trên, mình lại cần save lại với ít thông tin hơn, kiểu như sau:

{
  "name": "John Doe",
  "email": "johndoe@example.com",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}
  • Step 1: Extract token từ response (bài số 2)
  • Step 2: Tạo Map chứa data cần thiết
  • Step 3: Convert Map thành json string (có format đẹp nha)
  • Step 4: Save string vào file
import groovy.json.*

def slurper = new JsonSlurper()
def response = slurper.parseText(prev.getResponseDataAsString())

user_info = [
	name: response.user.name,
	email: response.user.email,
	token: response.user.token
]

def user_info_file = new File ("C:/users/dunguyen/desktop/", "user_info.json")
def json = JsonOutput.toJson(user_info)

user_info_file << JsonOutput.prettyPrint(json)

III. Write file csv

Giả sử mình có response dạng json như sau:

{
  "Actors": [
    {
      "name": "Tom Cruise",
      "age": 56,
      "birthdate": "July 3 1962",
      "photo": "https://jsonformatter.org/img/tom-cruise.jpg"
    },
    {
      "name": "Robert Downey Jr.",
      "age": 53,
      "birthdate": "April 4 1965",
      "photo": "https://jsonformatter.org/img/Robert-Downey-Jr.jpg"
    }
  ]
}

Giờ mình muốn save các thông tin trên về dạng csv.

  • Step 1: Extract token từ response (bài số 2)
  • Step 2: Tạo file
  • Step 3: Dùng function for-each ở bài 4 để save lại từng item.
  • Lưu ý: sẽ phải có ký tự xuống dòng \n ở mỗi String nhé.
import groovy.json.*

def slurper = new JsonSlurper()
def response = slurper.parseText(prev.getResponseDataAsString())

def actor_info_file = new File ("C:/users/dunguyen/desktop/", "actor_info.csv")
actor_info_file << "name,age,birthdate,photo\n"

response.Actors.each { actor -> 
	content = "$actor.name,$actor.age,$actor.birthdate,$actor.photo\n"
	actor_info_file << content
}

IV. Tổng kết

Nói chung là ghi file chỉ có 1, 2 dòng thôi, quan trọng là bạn phải sắp xếp được data cho phù hợp. Hết rồi, hẹn gặp các bạn ở bài khác.

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