2012-01-13 33 views
5

Có ai có kinh nghiệm sử dụng Selenium để tự động kiểm tra một ứng dụng web sử dụng Facebook Connect để đăng nhập người dùng không? Bất kỳ mẹo hoặc phương pháp nào bạn đề xuất?Thử nghiệm ứng dụng Facebook Connect bằng Selenium?

+0

Ngoài ra còn là một bài bằng Facebook kỹ sư một thời gian trở lại, liên kết trong bài là lỗi thời mặc dù, và nó đề cập đến watir. http: //developers.facebook.com/blog/post/305/ – David

+0

Đáng buồn là bài đăng trên blog của FB đã biến mất. Nhưng API này để thử nghiệm có thể được sử dụng: https://developers.facebook.com/docs/test_users/ – David

Trả lời

1

Phụ thuộc vào những gì bạn muốn làm?

  1. Bạn có đang sử dụng một người dùng Facebook thực sự (điện thoại được xác minh bởi Facebook) không?

    An toàn nhất và đáng tin cậy nhất, nhưng rất khó (không thể) để thu thập người dùng "thực" (điện thoại do FB xác minh).

    Về khía cạnh xác định các khía cạnh của chi tiết người dùng/kết nối, như lịch sử giáo dục, lịch sử công việc, tên, độ tuổi v.v. (đặc biệt nếu bạn không có quyền truy cập vào tất cả tài khoản facebook "thực").

  2. Người dùng facebook giả được tạo để thử nghiệm ứng dụng (không được xác minh bởi Fb)?

    Có lẽ dễ cài đặt nhất, vì tất cả đều là người dùng giả, không yêu cầu xác minh số điện thoại (với FB). Nhưng các id email cho tất cả người dùng sẽ cần phải được tạo.

    Mặc dù thông tin kết nối có thể được điều chỉnh theo ý thích của bạn. Một trong những hạn chế chính (và nó đã xảy ra với tôi), là nếu Fb phát hiện người dùng không phải là legit, FB sẽ đóng băng tất cả các tài khoản. Điều này sẽ làm cho tất cả các thử nghiệm tự động của bạn trong chớp mắt chỉ dành cho tất cả các thử nghiệm tự động của bạn trong chớp mắt. Và không có nhiều bạn có thể làm (Trừ khi bạn có kế hoạch để có được một kết nối điện thoại thương hiệu mới để xác minh những tài khoản, không có số google, không skype, không có điện thoại dựa trên ip được cho phép. FB là rất nghiêm ngặt với điều đó). Ngoài ra, một số chỉ có thể cho phép 1 tài khoản.

  3. Bạn có đang sử dụng API Facebook để tạo người dùng thử nghiệm Fb không?

    Có lẽ là cách lý tưởng (theo FB) để sử dụng Facebook kết nối để kiểm tra ứng dụng của bạn. nhấp vào here để biết tài liệu về cách sử dụng.

    Dường như nó có vẻ thẳng về phía trước, nhưng nó có sự thiếu hụt của nó (những cái chính). Rất không thể trả lại, API trả về một lỗi 10-20% thời gian, và cực kỳ làm chậm thời gian khác. Không có cách nào để lấy lại mật khẩu của người dùng thử FB nếu bị đặt nhầm chỗ một lần. Không thể dễ dàng tùy chỉnh thông tin kết nối. Một số tiền công bằng của nỗ lực cần thiết để thiết lập nó một cái gì đó mà không chắc chắn nó làm việc mỗi lần.

Cá nhân tôi đã chọn tùy chọn thứ hai. Facebook phát hiện tính hợp pháp của người dùng (tôi đoán) dựa trên thông tin đăng nhập song song trên nhiều ips. Tôi có các selen RC chạy trên các máy chủ khác nhau, chạy song song các thử nghiệm này, điều này có thể làm tăng cờ đỏ. Vì vậy, tôi chỉ lập lịch các tập lệnh này theo cách có tổ chức hơn, để tránh trùng lặp đăng nhập.

Tôi hy vọng trong phần giải thích dài này bạn sẽ tìm thấy câu trả lời của mình. :)


Đối với việc thực hiện perl -

$sel->start(); 
$sel->open_ok("$URL"); 
$sel->set_speed("500"); 
$sel->click_ok("//img[\@alt='Facebook']",'User clicks on Facebook Login'); 
$sel->wait_for_pop_up_ok("", "30000",'Facebook Login Popup Loading'); 
$sel->select_pop_up("null");  
$sel->type_ok("email", "email\@email.com",'User enters Facebook credentials - Username'); 
$sel->type_ok("pass", "password",'User enters Facebook credentials - Password'); 
$sel->key_press("pass", "\\13",'User returns Facebook Login credentials'); 
$sel->select_window("null"); 
+1

Thực sự có phương thức select_pop_up() không? Hay chỉ cho Perl? Tôi không thấy nó trong API Java (http://release.seleniumhq.org/selenium-remote-control/0.9.2/doc/java/) – David

Các vấn đề liên quan