Datgs' Blog

Quyết chiến quyết thắng !

Archive for the tag “Test”

SQL sercure, sử dụng addslashes hay var_export

Trong quá trình sử dụng PHP, để đảm bảo an toàn cho một câu truy vấn SQL (hay còn gọi là chống injection), ta thường sử dụng các hàm để đảm bảo các kí tự đặc biệt được sử dụng “đúng mục đích” của nó.

Trong đó phổ thông nhất và đơn giản nhất là sử dụng hàm addslashes của PHP.

Ngoài ra, trong quá trình tìm hiều, tôi cũng thấy rằng, var_export cũng là giải pháp hữu hiệu để tạo một chuỗi sql secure.

Tất nhiên, var_export thì sẽ tốn nhiều thời gian xử lí hơn, nhưng lại đơn giản hơn khi viết mã.

Tôi đã test thử mới 1 triệu vòng lặp với addslashes và var_export với chuỗi ‘schools\’ subjects

addslashes tốn 1.07 giây

var_export tốn 2.03 giây (gấp đôi)

Var_export viết mã đẹp hơn nhiều: thay vì viết

$string = ‘\”.addslashes($value).’\”;

bạn chỉ cần viết

$string = var_export($value);

PHP condition test (with null varible)

Tôi đã test thử với các trường hợp sau với 1 triệu vòng lặp:

+ if(isset($x)) với $x đã tồn tại, thời gian hết 0.218082904816

+ if(isset($x)) với $x không tồn tại (chưa khai báo) hết 0.199568033218 (nhanh hơn một chút)

+ if($x) với $x đã tồn tại, kiểu string hết 0.166479825974

+ if($x) với $x đã tồn tại, kiểu array hết 0.170602798462

+ if($x) với $x đã tồn tại, kiểu bool hết 0.165798187256

+ if($x) với $x không tồn tại hết 1.30605792999

+ if(is_array($x)) với $x tồn tại 0.544118881226

+ if(is_array($x)) với $x không tồn  tại 1.7626478672

+ if($x != intval($x)) với $x tồn tại 0.90156793594

+ if($x != intval($x) với $x không tồn tại 2.93575501442

Do đó trong khi lập trình với PHP, việc đảm bảo sự tồn tại của biến khá là quan trọng với performance. Và không nên sử dụng các hàm kiểm tra điều kiện một cách thoải mái (mặc dù php không cấm đoán điều đó).

Khi không chắc về sự tồn tại của biến, và không cần kiểm tra giá trị, thì nên sử dụng isset(). Mỗi một hàm ra đời đều có mục đích cụ thể. Các hệ thống cỡ nhỏ thì không đặt nặng vấn đề performance. Nhưng với hệ thống lớn, đảm bảo tài nguyên sử dụng cho CPU rất là quan trọng.

Một vấn đề khác nữa đó là, nên sử dụng mảng hay biến PHP. Câu trả lời là, chỉ sử dụng mảng khi mảng phát huy được sự tiện lợi của nó, thực tế cho thấy, các truy vấn trong mảng tốn nhiều tài nguyên hơn truy vấn biến rất nhiều.

+ với biến 0.169647932053

+ với mảng 0.286859989166 chậm gần gấp đôi thời gian so với truy vấn dữ liệu theo tên biến.

Khi so sánh giữa array_key_exists và isset để kiểm tra sự tồn tại giá trị của một biến mảng:

+ với array_key_exists: 0.836390018463 (tồn tại) và 0.945994853973 (chưa tồn tại)

+ với isset: 0.249009847641 (đã tồn tại) và 0.229282855988 (chưa tồn tại)

Vì vậy, khuyến cáo sử dụng isset cho trường hợp này.

Mercury LoadRunner 8.0

I. Các tính năng của Mercury LoadRunner 8.0

1. Công cụ Virtual User Generator để tạo User ảo (Virtual User), với các hành vi được copy từ thao tác của người duyệt web.

2. Điều khiển truy cập số lượng lớn (sử dụng nhiều VUser để truy cập vào web apps với kịch bản test đã xây dựng bởi Virtual User Generator).

4. Công cụ phân tích mạnh mẽ, chi tiết, ngoài việc test các thông số cơ bản như  Transaction, Loading time… Còn có thể kiểm tra các thông số tài nguyên của hệ thống (localhost hoặc deployment server trong cùng mạng nội bộ)

3. Công cụ phân tích đánh giá (Analys) bằng đồ thị rất mạnh mẽ và tiện dụng. Có thể tạo các báo cáo dạng *html.

II.  Đặc điểm của công cụ Mercury Loadrunner

-          Dễ sử dụng, bảo trì, tạo test script nhanh. Cung cấp dữ liệu kiểm tra rõ ràng và dễ hiểu.

-          Kiểm tra phiên bản mới của ứng dụng với rất ít sự thay đổi.

-          Hỗ trợ làm việc theo nhóm thông qua sự chia sẻ thư viện, thống nhất quản lý.

III. Cách sử dụng Mercury Loadrunner

-          B1: Recording scripts (Vuser Generator)

-          B2: Replaying scripts (Test script)

-          B3: Sử dụng controller để điểu khiển các Vuser scripts

-          B4: Sử dụng Analysis để phân tích kết quả :D

IV. Links

-          Download trial: http://downloads.mercury.com/cgi-bin/portal/download/loginForm.jsp?id=160

-          Website: http://www.mercury.com

V. Hướng dẫn sử dụng sơ bộ nè

http://www.mediafire.com/?sharekey=29d2c2feda5f209c4012e8015643d9c8418e752a73fd7cd8

Chúc các bạn thành công ^^


Post Navigation

Follow

Get every new post delivered to your Inbox.