Thế nào là một dynamic request body, đó là 1 cái request body có data linh động, mỗi lần run test bạn không phải sửa lại data. Mình đã nhắc đến nội dung này trong 1 bài viết khác.
Đây là request body thông thường
{ "firstname": "Jim", "lastname": "Brown", "totalprice": 111, "depositpaid": true, "bookingdates": { "checkin": "2018-01-01", "checkout": "2019-01-01" }, "additionalneeds": "Breakfast" }
Đây là dynamic request body, tất cả các vị trí đều là variable (biến)
{ "firstname": "{{firstname}}", //random first name "lastname": "{{lastname}}", //random last name "totalprice": {{totalprice}}, // 100 < price < 200 "depositpaid": {{depositpaid}}, // true or fail "bookingdates": { "checkin": "{{checkin}}", // >= today "checkout": "{{checkout}}" // = today + (2/4) days }, "additionalneeds": "{{additionalneeds}}" // one in ["Breakfast", "view sea", "TV", "free transport"] }
Nội dung bài viết
I. Postman cung cấp fake data cực dễ dùng
Full list ở đây: https://learning.postman.com/docs/writing-scripts/script-references/variables-list/
Mình đã hướng dẫn cách sử dụng ở bài 19
Chốt lại ta có:
"firstname": "{{$randomFirstName}}", "lastname": "{{$randomLastName}}"
II. Random number
"totalprice": {{totalprice}}
Để random số trong 1 khoảng, có 1 vài cách làm như sau:
//Math.floor(Math.random() * (max - min + 1) ) + min; let price = Math.floor(Math.random() * (200 - 100 + 1) ) + 100; pm.environment.set("totalprice", price);
//_.random(min,max) let price = _.random(100,200) pm.environment.set("totalprice", price);
III. Lấy random 1 hoặc nhiều items trong 1 list
Trong bài trên có 2 biến như vậy:
"depositpaid": {{depositpaid}}, "additionalneeds": "{{additionalneeds}}"
Cách lấy random trong 1 list như sau
//_.sample(list) let depositpaid = _.sample([true,false]) pm.environment.set("depositpaid", depositpaid); const list = ["Breakfast", "view sea", "TV", "free transport"]; let additionalneeds = _.sample(list); pm.environment.set("additionalneeds", additionalneeds);
IV. Làm việc với data là thời gian
"checkin": "{{checkin}}", "checkout": "{{checkout}}"
Mình đã viết về date-time ở bài 17
const moment = require("moment"); const now = moment() let checkin = now.add(_.random(5,10), 'h'); pm.environment.set("checkin", checkin.format("YYYY-MM-DD")); let checkout = checkin.add(_.random(2,4), 'd'); pm.environment.set("checkout", checkout.format("YYYY-MM-DD"));
V. Tổng hợp
Muốn biết thêm nhiều kỹ thuật nữa, hãy đăng ký lớp postman script
ok
Anh ơi, em đang test performance bằng tool Jmeter , em muốn viết test script để auto test thì có viết được không ạ, và cách kết nói như nào ạ. Anh có thể share cho em với được không ạ. Em cảm ơn anh ạ
Anh đã trả lời trên skype.
Có cách nào để chuyển từ ảnh sang base64 không ạ
em chuyển sang base64 ở ngoài rồi patse vào thôi.
dạ vâng
Anh ơi cho em.hỏi random ngày tháng dạng unix time thì làm như nào ạ ?
//milisecond
console.log(moment().valueOf());
//second
console.log(moment().unix());
anh ơi, có cách nào để random SĐT mà đầu số bắt đầu = 0 và SĐT có 10 chữ số không bị ngắn cách bởi dấu – không ạ?
a nghĩ là rất dễ, em có thể làm như sau:
let phone = "09" + _.random(10000000,99999999)