RazorSQL chứa một công cụ cho phép người dùng làm việc với MySQL blobs, dữ liệu nhị phân và dữ liệu hình ảnh. Các tùy chọn bao gồm khả năng chỉnh sửa dữ liệu blob, lưu dữ liệu blob vào tệp và xem dữ liệu blob dưới dạng hình ảnh
Để khởi chạy trình chỉnh sửa blob MySQL, hãy kết nối với MySQL, sau đó xem nội dung của bảng chứa cột blob hoặc nhị phân bằng cách sử dụng tùy chọn xem nội dung của trình duyệt cơ sở dữ liệu hoặc bằng cách chạy truy vấn chọn đối với bảng. Sau khi kết quả được hiển thị trong phần kết quả truy vấn, nhấp chuột phải/menu ngữ cảnh của ô kết quả chứa dữ liệu nhị phân sẽ chứa các tùy chọn được gọi là "Trình chỉnh sửa dữ liệu nhị phân" và "Xem dưới dạng hình ảnh"
Để chỉnh sửa dữ liệu nhị phân hoặc lưu dữ liệu nhị phân vào một tệp, có thể chọn tùy chọn "Trình chỉnh sửa dữ liệu nhị phân". Lưu ý, tùy chọn này chỉ khả dụng cho các bảng có khóa chính. Sau khi chọn mục trình đơn trình soạn thảo dữ liệu nhị phân, cửa sổ trình soạn thảo dữ liệu nhị phân sẽ hiển thị. Có các tùy chọn để lưu dữ liệu nhị phân vào tệp, cập nhật dữ liệu nhị phân từ tệp, xem dữ liệu dưới dạng hình ảnh hoặc chỉnh sửa dữ liệu dưới dạng dữ liệu ký tự sau khi chỉ định mã hóa ký tự
Để chèn dữ liệu nhị phân vào một blob hoặc cột nhị phân trong một hàng mới trong bảng cơ sở dữ liệu, trước tiên, một hàng phải được chèn có chứa giá trị null cho cột hoặc giá trị giả. Sau khi hàng mới được chèn vào, người dùng có thể truy vấn bảng bằng RazorSQL và khởi chạy trình chỉnh sửa dữ liệu nhị phân
Trong khi thực hiện kiểm tra API, lưu dữ liệu trong cơ sở dữ liệu hoặc thực hiện đọc dữ liệu từ cơ sở dữ liệu, thường phải gặp các đối tượng thuộc loại BLOB
BLOB, hoặc Đối tượng lớn nhị phân, là nơi API có thể lưu trữ hình ảnh, video, văn bản và các thông tin khác được lưu trữ ở dạng nhị phân. [Dữ liệu nhị phân hoặc chế độ xem dữ liệu nhị phân là dữ liệu được biểu thị bằng 1 và 0]. Ngoài việc ghi dữ liệu vào BLOB, API cũng có thể đọc dữ liệu từ BLOB
Trong bài đăng trên blog này, bạn sẽ thấy cách sử dụng Apache JMeter™ để tạo bảng với một trong các kiểu dữ liệu BLOB, cách ghi dữ liệu trong BLOB và cách đọc dữ liệu từ BLOB
Bắt đầu nào
Mục lục
- BLOB trong MySQL là gì?
- Các loại BLOB
- Tạo một bảng có kiểu dữ liệu BLOB trong JMeter
- Thêm hàng vào bảng chứa BLOB trong JMeter
- Lấy dữ liệu từ BLOB trong JMeter
BLOB trong MySQL là gì?
BLOB, viết tắt của Đối tượng lớn nhị phân, là loại dữ liệu MySQL có thể lưu trữ hình ảnh, tệp PDF, đa phương tiện và các loại dữ liệu nhị phân khác
Các loại BLOB
Trong MySQL, có 4 loại BLOB. TINYBLOB, BLOB, MEDIUMBLOB và LONGBLOB. Tất cả 4 loại đối tượng này chỉ khác nhau về kích thước của dữ liệu có thể được lưu trữ
📕 Tài nguyên liên quan. Tìm hiểu thêm về Cách kiểm tra kết nối MySQLBảng bên dưới hiển thị các giá trị về độ dài dữ liệu mà mỗi loại đối tượng có thể chứa
Loại đối tượngĐộ dài giá trị mà đối tượng có thể giữTINYBLOBtừ 0 đến 255 byteBLOBtừ 0 đến 65535 byteMEDIUMBLOBtừ 0 đến 16 777 215 byteLONGBLOBtừ 0 đến 4 294 967 295 byte
Tạo một bảng có kiểu dữ liệu BLOB trong JMeter
Để tạo một bảng có kiểu dữ liệu BLOB, bạn cần làm như sau trong JMeter
1. Thêm một nhóm chủ đề
Nhấp chuột phải -> Chủ đề -> Nhóm chủ đề
2. Cấu hình kết nối đến cơ sở dữ liệu
Định cấu hình kết nối với cơ sở dữ liệu và tìm hiểu cách kiểm tra kết nối MySQL
3. Thêm một yêu cầu JDBC
Nhấp chuột phải vào Nhóm chủ đề -> Thêm -> Trình lấy mẫu -> Yêu cầu JDBC
Loại truy vấn -> Cập nhật câu lệnh
Trong bước này, chúng tôi sẽ gửi yêu cầu đến cơ sở dữ liệu để tạo bảng
Trong Yêu cầu JDBC, thêm đoạn mã sau
CREATE TABLE sakila.test_blob[ ID INT, TEXT BLOB, IMAGE BLOB];
Đoạn mã hiển thị ở trên thực hiện như sau
- CREATE TABLE - Toán tử tạo bảng trong cơ sở dữ liệu
- sakila - Tên cơ sở dữ liệu
- test_blob - Tên của bảng sẽ được tạo
ID INT
- ID - Tên cột trong bảng
- INT - Kiểu dữ liệu cho các giá trị sẽ được lưu trữ trong cột
VĂN BẢN BLOB
- TEXT - Tên cột trong bảng
- BLOB - Kiểu dữ liệu cho các giá trị sẽ được lưu trữ trong cột
HÌNH ẢNH BLOB
- HÌNH ẢNH - Tên cột trong bảng
- BLOB - Kiểu dữ liệu cho các giá trị sẽ được lưu trữ trong cột
4. Thêm một cây xem kết quả
Nhóm chủ đề -> Nhấp chuột phải -> Thêm -> Trình nghe -> Xem cây kết quả
Bước này sẽ hiển thị yêu cầu mà JMeter gửi đến cơ sở dữ liệu và phản hồi mà nó nhận được từ cơ sở dữ liệu
Sau khi bắt đầu kiểm tra, chúng ta sẽ thấy kết quả như trong hình bên dưới
0 cập nhật có nghĩa là chúng tôi đã tạo thành công bảng trong cơ sở dữ liệu
Nếu chúng ta vào cơ sở dữ liệu, chúng ta cũng sẽ thấy bảng đã tạo, như trong hình bên dưới
Thêm hàng vào bảng chứa BLOB trong JMeter
Ví dụ sau đây cho thấy cách tạo một hàng trong bảng test_blob sẽ chứa BLOB và BLOB sẽ chứa văn bản
Giá trị cho đối tượng BLOB sẽ được chuyển thành một chuỗi trong chính truy vấn SQL
Để làm điều này, bạn cần làm như sau
5. Thêm một yêu cầu JDBC
Nhóm chủ đề -> Nhấp chuột phải -> Thêm -> Trình lấy mẫu -> Yêu cầu JDBC
Loại truy vấn -> Cập nhật câu lệnh
Trong Yêu cầu JDBC, thêm đoạn mã sau
INSERT INTO sakila.test_blob VALUES [1, 'Test', null];
Đoạn mã hiển thị ở trên thực hiện như sau
- INSERT INTO - Câu lệnh cho phép thêm dữ liệu vào bảng
- sakila - Tên cơ sở dữ liệu
- test_blob - Tên của bảng mà dữ liệu sẽ được thêm vào
- GIÁ TRỊ - Chỉ định các giá trị để thêm vào bảng
- [1, 'Test', null] - Các giá trị được ghi vào các cột, trong trường hợp của chúng tôi
- 1 - sẽ được viết trong cột ID
- Kiểm tra - sẽ được viết trong cột TEXT. Trước khi giá trị "Test" được ghi vào cột "TEXT", cơ sở dữ liệu MySQL sẽ tự động tạo đối tượng BLOB và ghi giá trị "Test" vào đối tượng đó
- null - sẽ được viết trong cột IMAGE
Sau khi bắt đầu kiểm tra, chúng ta sẽ thấy kết quả như trong hình bên dưới
1 bản cập nhật có nghĩa là chúng tôi đã thêm thành công dữ liệu vào bảng
Nếu chúng ta truy cập cơ sở dữ liệu và thực hiện CHỌN * TỪ sakila. test_blob, chúng ta sẽ thấy kết quả như trong hình bên dưới
Hình trên cho thấy trong cột "TEXT" một đối tượng BLOB đã được tạo
Để thấy rằng BLOB thực sự chứa giá trị "Kiểm tra", bạn cần thực hiện các thao tác sau trong cơ sở dữ liệu
- BLOB -> Nhấp chuột phải -> Mở giá trị trong Trình xem -> Văn bản
Hình ảnh trên cho thấy rằng chúng tôi thực sự đã tạo một BLOB có chứa giá trị "Test"
Tiếp theo, bạn sẽ thấy cách tạo một hàng trong bảng test_blob sẽ chứa đối tượng BLOB và đối tượng BLOB sẽ chứa một hình ảnh
Để tạo một BLOB chứa hình ảnh, bạn cần làm như sau
6. Tạo một tệp hình ảnh và đặt nó vào C. /Dữ liệu chương trình/MySQL/Máy chủ MySQL 5. 7/Uploads/ thư mục
Trong trường hợp của chúng tôi, một hình ảnh. tệp png thuộc loại sau sẽ được tạo
Giải thích tại sao hình ảnh được đặt trong C. /ProgramData /MySQL/MySQL Server thư mục 5. 7/Uploads/ xuất hiện bên dưới
7. Thêm một yêu cầu JDBC
Nhóm chủ đề -> Nhấp chuột phải -> Thêm -> Trình lấy mẫu -> Yêu cầu JDBC
Loại truy vấn -> Cập nhật câu lệnh
Trong Yêu cầu JDBC, thêm đoạn mã sau
INSERT INTO sakila.test_blobVALUES[2,null, LOAD_FILE['C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/image.png']];
Đoạn mã hiển thị ở trên thực hiện như sau
- INSERT INTO - Câu lệnh cho phép thêm dữ liệu vào bảng
- sakila - Tên cơ sở dữ liệu
- test_blob - Tên của bảng mà dữ liệu sẽ được thêm vào
- GIÁ TRỊ - Chỉ định các giá trị để thêm vào bảng
- [2, null, LOAD_FILE['C. /Dữ liệu chương trình/MySQL/Máy chủ MySQL 5. 7/Tải lên/hình ảnh. png']] - Các giá trị được ghi vào các cột
- 2 - sẽ được viết trong cột ID
- null - sẽ được viết trong cột TEXT
- LOAD_FILE['C. /Dữ liệu chương trình/MySQL/Máy chủ MySQL 5. 7/Tải lên/hình ảnh. png'] - Đây là hàm đọc dữ liệu từ tệp và trả về dữ liệu dưới dạng chuỗi. Đối số của hàm này là đường dẫn đầy đủ đến tệp [Trong trường hợp này, đường dẫn đầy đủ là C. / ProgramData/MySQL/MySQL Server 5. 7/Tải lên/hình ảnh. png]. Chức năng này cho phép bạn đọc bất kỳ dữ liệu nào từ một tệp
Khi sử dụng chức năng này, có các hạn chế sau
- Tệp phải nằm trong thư mục được phép tải xuống. Quyền này được đặt cho một thư mục cụ thể trong chính MySQL. Trong trường hợp của chúng tôi, tệp được đặt trong thư mục 'C. /ProgramData/MySQL/MySQL Server5. 7/Uploads, đối với thư mục này mặc định MySQL cấp quyền tải file
- Người dùng đã kết nối với cơ sở dữ liệu phải có quyền tải tệp lên
Nếu các yêu cầu này không được đáp ứng, thì null được tạo thay vì BLOB
Trong trường hợp của chúng ta, hàm LOAD_FILE['C. /ProgramData/MySQL/MySQL Server5. 7/Tải lên/ hình ảnh. png'] đọc dữ liệu từ tệp và chuyển đổi thành chuỗi. Sau đó, MySQL tạo một đối tượng BLOB và đặt dữ liệu vào đối tượng đã tạo sẽ được ghi vào bảng test_blob
Sau khi bắt đầu kiểm tra, chúng ta sẽ thấy kết quả như trong hình bên dưới
1 cập nhật có nghĩa là chúng tôi đã thêm thành công dữ liệu vào bảng
Nếu chúng ta truy cập cơ sở dữ liệu và thực hiện CHỌN * TỪ sakila. test_blob, chúng ta sẽ thấy kết quả như trong hình bên dưới
Hình trên cho thấy trong cột "IMAGE" một đối tượng BLOB đã được tạo
Để thấy rằng một đối tượng BLOB thực sự chứa một hình ảnh, bạn cần làm như sau
- BLOB -> Nhấp chuột phải -> Mở giá trị trong Trình xem -> Hình ảnh
Hình ảnh trên cho thấy rằng chúng tôi thực sự đã tạo một đối tượng BLOB có chứa một hình ảnh
Ngoài hàm LOAD_FILE[] đọc dữ liệu từ file, bạn còn có thể sử dụng Groovy
Để tạo một BLOB chứa hình ảnh hoặc văn bản, bạn cần làm như sau
8. Thêm Trình lấy mẫu JSR223
Nhóm chủ đề -> Nhấp chuột phải -> Thêm -> Trình lấy mẫu -> Trình lấy mẫu JSR223
Trình lấy mẫu JSR223 -> Ngôn ngữ Groovy
Trong Trình lấy mẫu JSR223, hãy thêm đoạn mã sau
String fileWithImage = "C:\\Users\\CC\\Desktop\\image.png";
String fileWithText = "C:\\Users\\CC\\Desktop\\text.txt";
new File[fileWithImage].withInputStream {stream ->
String image = Base64.getEncoder[].encodeToString[stream.readAllBytes[]];
vars.put["image", image];
}
new File[fileWithText].withInputStream {stream ->
String text = new String[stream.readAllBytes[]];
vars.put["text", text];
}
Đoạn mã hiển thị ở trên thực hiện như sau
Tệp chuỗiWithImage = "C. \\Users\\CC\\Desktop\\image. png" - Tạo một biến có kiểu dữ liệu Chuỗi có giá trị là đường dẫn đầy đủ đến tệp hình ảnh
Tệp chuỗiWithText = "C. \\Users\\CC\\Desktop\\text. txt"; - Tạo một biến có kiểu dữ liệu String, có giá trị là đường dẫn đầy đủ đến tệp có văn bản
Tập tin này sẽ trông giống như hình dưới đây
Khi bạn sử dụng Groovy để đọc dữ liệu từ tệp, bạn có thể đặt tệp vào bất kỳ thư mục nào
new File[fileWithImage].withInputStream {stream ->
String image = Base64.getEncoder[].encodeToString[stream.readAllBytes[]];
vars.put["image", image];
}
Trong mã này, đọc dữ liệu từ tệp dưới dạng byte, chuyển đổi byte sang Định dạng Base64 và gán giá trị kết quả cho biến “hình ảnh” với kiểu dữ liệu Chuỗi
Base64 là tiêu chuẩn để mã hóa dữ liệu nhị phân trong một chuỗi
new File[fileWithText].withInputStream {stream ->
String text = new String[stream.readAllBytes[]];
vars.put["text", text];
}
Trong mã này, đọc dữ liệu từ tệp dưới dạng byte, chuyển đổi dữ liệu từ byte thành chuỗi và gán giá trị nhận được cho biến 'văn bản' với kiểu dữ liệu Chuỗi
9. Thêm một yêu cầu JDBC
Nhóm chủ đề -> Nhấp chuột phải -> Thêm -> Trình lấy mẫu -> Yêu cầu JDBC
Loại truy vấn -> Cập nhật câu lệnh
Trong Yêu cầu JDBC, thêm đoạn mã sau
INSERT INTO sakila.test_blob VALUES [3, '${text}', FROM_BASE64['${image}']];
Đoạn mã hiển thị ở trên thực hiện như sau
- INSERT INTO - Câu lệnh cho phép thêm dữ liệu vào bảng
- sakila - Tên cơ sở dữ liệu
- test_blob - Tên của bảng mà dữ liệu sẽ được thêm vào
- GIÁ TRỊ - Chỉ định các giá trị để thêm vào bảng
- [3, '${text}', FROM_BASE64['${image}']] - Các giá trị được ghi vào các cột
- FROM_BASE64 - một hàm MySQL chuyển đổi giá trị của biến '${image}' từ BASE64 thành một chuỗi
- '${text}' - biến, giá trị của nó là dữ liệu từ tệp văn bản. txt
- '${image}' - biến, giá trị của nó là dữ liệu từ tệp hình ảnh. png
Sau khi bắt đầu kiểm tra, chúng ta sẽ thấy kết quả như trong hình bên dưới
1 cập nhật có nghĩa là chúng tôi đã thêm thành công dữ liệu vào bảng
Nếu chúng ta truy cập cơ sở dữ liệu và thực hiện CHỌN * TỪ sakila. test_blob, chúng ta sẽ thấy kết quả như trong hình bên dưới
Hình trên cho thấy trong cột "TEXT", "IMAGE" một đối tượng BLOB đã được tạo
Để thấy rằng một đối tượng BLOB thực sự chứa hình ảnh và văn bản, bạn cần làm như sau
- BLOB -> Nhấp chuột phải -> Mở giá trị trong Trình xem -> Văn bản
- BLOB -> Nhấp chuột phải -> Mở giá trị trong Trình xem -> Hình ảnh
Những hình ảnh trên cho thấy rằng chúng tôi thực sự đã tạo các đối tượng BLOB có chứa một hình ảnh và văn bản
Lấy dữ liệu từ BLOB trong JMeter
Để lấy dữ liệu từ BLOB, bạn cần làm như sau
10. Thêm một yêu cầu JDBC
Nhóm chủ đề -> Nhấp chuột phải -> Thêm -> Trình lấy mẫu -> Yêu cầu JDBC
Loại truy vấn -> Tuyên bố chọn đã chuẩn bị
Tên biến kết quả -> Blob
Trong Yêu cầu JDBC, thêm đoạn mã sau
SELECT * FROM sakila.test_blob WHERE ID = '3'
Đoạn mã hiển thị ở trên thực hiện như sau
SELECT * FROM sakila.test_blob WHERE ID = '3'
Ví dụ mã này hiển thị nhận một hàng [với tất cả các trường] có giá trị ID = '3' từ bảng sakila. test_blob
11. Trong Yêu cầu JDBC, thêm Bộ xử lý hậu kỳ JSR223
Yêu cầu JDBC -> Nhấp chuột phải -> Thêm -> Bộ xử lý bài đăng -> Bộ xử lý hậu kỳ JSR223
JSR223 PostProcessor -> Ngôn ngữ Groovy
Trong JSR223 PostProcessor, thêm đoạn mã sau
byte[] blobByte = vars.getObject["Blob"].get[0].get["TEXT"];
String blob = new String[blobByte];
log.info[blob];
Đoạn mã hiển thị ở trên thực hiện như sau
- byte[] blobByte = vars. getObject["Đốm màu"]. nhận được [0]. get["TEXT"];
- Chuỗi blob = Chuỗi mới [blobByte];
- đăng nhập. thông tin [đốm màu];
Sau khi bắt đầu kiểm tra, chúng ta sẽ thấy kết quả như trong hình bên dưới
Trong hình trên, bảng điều khiển JMeter hiển thị dữ liệu mà chúng tôi đã nhận được từ BLOB. Hàng 3 có dữ liệu “Test Test Test”
Bước tiếp theo. Chạy tập lệnh JMeter của bạn trong BlazeMeter
Sau khi tạo tập lệnh JMeter, bạn có thể tải JMX của mình lên BlazeMeter. Sử dụng BlazeMeter nếu bạn muốn mở rộng quy mô thử nghiệm của mình, cộng tác trong thử nghiệm và kết quả, chia sẻ báo cáo với người quản lý và cải thiện sự nhanh nhẹn
BẮT ĐẦU KIỂM TRA NGAY
Blog này ban đầu được xuất bản vào ngày 8 tháng 8 năm 2018 và kể từ đó đã được cập nhật về độ chính xác và mức độ liên quan