Hiệu suất của bộ chọn xpath so với css
Trong mẹo trước, chúng tôi đã xem xét hiệu suất của CSS so với. XPath chống lại Sauce Labs. Mặc dù nó chứng minh rằng mỗi chiến lược định vị tương đương nhau một cách hợp lý trên các trình duyệt, nhưng nó không vẽ được bức tranh toàn cảnh đầy đủ cho chúng tôi Show Cho rằng đó là một thử nghiệm từ đầu đến cuối nên có rất nhiều biến số đang diễn ra -- Khởi động Sauce, khởi động trình duyệt và độ trễ đến và từ ứng dụng được thử nghiệm. Điều đáng tiếc rút ra từ thử nghiệm đó có thể là một trình điều khiển có thể nhanh hơn trình điều khiển kia (e. g. IE vs Firefox), trong khi thực tế thì hoàn toàn không phải vậy Một giải phápĐể có được cảm nhận thực sự về sự khác biệt về hiệu suất giữa CSS và XPath, chúng ta sẽ cần tìm hiểu sâu hơn. Chúng tôi sẽ làm điều đó bằng cách chạy mọi thứ từ máy cục bộ trong khi sử dụng tiện ích đo điểm chuẩn hiệu suất. Chúng tôi cũng sẽ muốn tập trung vào một hành động Selenium cụ thể hơn là toàn bộ quá trình chạy thử nghiệm và chạy mọi thứ nhiều lần Một ví dụTrong ví dụ này, tôi thiết lập một máy ảo Windows XP cục bộ. Đây là công việc nhanh chóng nhờ những hình ảnh có sẵn của Microsoft. Bạn có thể lấy một cái ở đây và xem bài viết về quá trình thiết lập của bạn trong Virtual Box Sau khi cài đặt Ruby (1. 9. 3) Tôi đã cài đặt tất cả các trình duyệt có sẵn và trình điều khiển trình duyệt tương đương của chúng để sử dụng Selenium. Bạn có thể tìm hiểu thêm về cách thiết lập các trình duyệt khác nhau để chạy cục bộ trong Selenium tại đây Để đo điểm chuẩn, tôi đã sử dụng thư viện có sẵn trong lib tiêu chuẩn của Ruby có tên là 'điểm chuẩn'. Bạn có thể tìm hiểu thêm về nó ở đây Để có được bộ dữ liệu mẫu đầy đủ, tôi đã chạy thử nghiệm tương tự đối với từng trình duyệt 100 lần. Và để loại bỏ những điểm bất thường trong dữ liệu, tôi đã sử dụng tính năng diễn tập của điểm chuẩn để nó chạy toàn bộ trình tự thử nghiệm, thực hiện thu gom rác rồi chạy lại Để làm cho mọi thứ có thể so sánh được, một số bộ định vị đã được cập nhật để tạo ra các kết quả phù hợp hơn khi so sánh với nhau. Và hành động cụ thể mà chúng tôi đo lường được là Đây là kết quả Kết quảGHI CHÚ. Đầu ra tính bằng giây và kết quả là tổng thời gian chạy của 100 lần thực hiện Kết quả cho chúng ta biết điều gìNhìn chung, Internet Explorer chậm hơn các trình điều khiển khác, nhưng giữa CSS và XPath, có vẻ như XPath thực sự nhanh hơn CSS. Chrome và Opera có một số điểm khác biệt, dù nhỏ hơn nhiều nhưng chúng lắc lư theo cả hai hướng. Trong một số trường hợp, CSS nhanh hơn và trong những trường hợp khác, XPath. Và Firefox có vẻ được tối ưu hóa hơn một chút cho CSS vì nó hầu như nhanh hơn trên bảng GHI CHÚ. Opera 12. 16 đã được sử dụng vì đó là phiên bản được hỗ trợ cuối cùng trong dự án Selenium. Đó là vì họ đã chuyển sang sử dụng Chromium và bỏ hỗ trợ Selenium. Điều đó và Mozilla đã thuê nhà phát triển WebDriver duy nhất của Opera -- vì vậy, có điều đó kết thúcNgay cả với những khác biệt về tốc độ này, chúng chỉ cách nhau vài giây (hoặc vài giây) -- và đó là cho 100 lần thực hiện. Khi bạn nghĩ về việc phải mất 30 giây trở lên để hoàn thành một lần chạy thử, thì sự khác biệt này là không đáng kể Như tôi đã lưu ý trong mẹo trước, lựa chọn giữa CSS và XPath có thể là một lựa chọn khó thực hiện. Nhưng bây giờ bạn được trang bị quá nhiều dữ liệu để đưa ra lựa chọn cho chính mình. Đó thực sự chỉ là vấn đề tìm kiếm những gì phù hợp với bạn và nhóm của bạn và không bị đè nặng bởi sự cường điệu và ý kiến xung quanh cái nào tốt hơn Kiểm tra vui vẻ Sự nhìn nhậnTôi muốn gửi lời cảm ơn đến David Burns và Brian Goad. Họ đã giúp thực hiện mẹo này bằng cách mỗi người giúp đỡ theo cách riêng của họ. David vì phản hồi và hướng dẫn của anh ấy về cách thực hiện kiểm thử hiệu suất hiệu quả. Và Brian vì phản hồi, đề xuất và đóng góp mã của anh ấy. Cảm ơn bạn Cả xpath và css đều là một trong những công cụ định vị được sử dụng thường xuyên nhất trong Selenium. Mặc dù có các công cụ định vị khác như id, tên, tên lớp, tên thẻ và văn bản liên kết, v.v., xpath và css được sử dụng khi không có sẵn các thuộc tính duy nhất để xác định các phần tử Có một số khác biệt giữa xpath và css được liệt kê dưới đây -
|