Xin chào, tôi không có bất kỳ giao diện người dùng nào trong ứng dụng của mình. Tôi sẵn sàng phát hành một API RESTful có thể được sử dụng bởi các máy khách khác nhau. Bất kỳ con trỏ nào, tôi nên tiến hành thử nghiệm nó bằng dưa chuột như thế nào? Mọi hành động trong bộ điều khiển chỉ tạo nguồn cấp dữ liệu XML. Bất kỳ gợi ý hay gợi ý nào?Kiểm tra API RESTful bằng Dưa chuột trong giao diện người dùng ít ứng dụng
Trả lời
Tôi nghĩ Webrat nhiều hơn những gì bạn cần. Đối với thử nghiệm nguồn cấp dữ liệu XML, bạn không cần trình mô phỏng trình duyệt như Webrat sẽ tải trang và phân tích tất cả đánh dấu (liên kết, biểu mẫu, v.v.) khi bạn thực sự không có bất kỳ trang HTML nào.
Bạn cần phải có thứ gì đó như Curl (http://curl.haxx.se) hoặc Curb (trên rubyforge, là các liên kết ruby cho Curl) hoặc Patron (trên rubyforge).
Các thư viện này có thể tạo tiêu đề yêu cầu theo ý thích của bạn (ví dụ: đặt Loại nội dung, chọn trong số GET PUT POST DELETE HEAD vv) và nhận phản hồi và có thể theo dõi 302 chuyển hướng khi cần.
Trả lời được trả về, sau đó có thể được chuyển thành đối tượng XML và các trình phân tích cú pháp XML có sẵn cho Ruby có thể được sử dụng để kiểm tra đầu ra. Ngoài ra, bạn có thể viết các lớp XMLMapping (trên rubyforge) để chuyển đổi kết quả đầu ra XML thành các đối tượng Ruby và kiểm tra các thuộc tính của chúng vv. Điều này sạch hơn nhiều, IMHO.
Khi bạn đã thiết lập các tuyến đường RESTful của mình, bạn sẽ có thể sử dụng Webrat để truy cập các tuyến đường khác nhau. Sau đó, bạn có thể kiểm tra xem mỗi tuyến đường có trả lại XML đáp ứng được kỳ vọng của bạn hay không.
Dưới đây là một bài viết trên blog rằng mô tả làm thế nào để kiểm tra đầu ra XML trong RSpec: Testing XML output
Webrat là một trình duyệt không đầu, mà chỉ đơn giản có nghĩa là bạn có thể mô phỏng một trình duyệt mà không cần phải mở một trình duyệt thực như FireFox trên của bạn máy phát triển. Điều này có nghĩa là bạn có thể chỉ cần nhập một cái gì đó như "truy cập" người dùng/'"vào các bước được xác định của bạn và mô phỏng một người dùng truy cập vào ứng dụng của bạn.
Cuối cùng là Pragmatic book on RSpec (vẫn còn trong phiên bản beta), là tài nguyên tuyệt vời về cách sử dụng Cucumber, Webrat và RSpec cùng nhau và thúc đẩy phát triển ứng dụng của bạn bằng BDD.
Cảm ơn :) Tôi không có bất kỳ phía trước kết thúc ứng dụng của tôi có nghĩa là nếu tôi không có một nút "Delete" có sẵn để tiêu diệt một tài nguyên cụ thể. Bây giờ AFAIK Webrat không cho phép bạn yêu cầu một url cụ thể với một động từ HTTP cụ thể (GET, POST, v.v.). Tôi nên tiến hành vấn đề này như thế nào? Tôi có thể làm điều này dễ dàng với Rspec nhưng nó không hỗ trợ "User Stories" nữa.Đó là một câu hỏi khác trong chính nó. :) – Waseem
Bạn có thể mô phỏng phương thức GET đơn giản bằng cách truy cập một URL cụ thể. Để mô phỏng các động từ PUT hoặc DELETE, bạn có thể sử dụng set_hidden_field "_method", "PUT" hoặc set_hidden_field "_method", "DELETE" trước khi truy cập liên kết. Tôi chưa thử điều này. –
Tài liệu của set_hidden_field cho webrat. Nó nói "nó xác minh rằng một trường ẩn tồn tại trên trang hiện tại và đặt giá trị cho tham số đã cho." Vì tôi không có bất kỳ giao diện người dùng nào cho ứng dụng của mình, tôi không có bất kỳ nút hidden_field hoặc form_field hoặc tương tác nào. Tôi nghĩ rằng tôi cần một cách mà tôi có thể yêu cầu các URL còn lại khác nhau với các động từ HTTP khác nhau. giống như this nhưng có thể được tự động hóa. – Waseem
Chức năng visit
của webrat chấp nhận http_method làm thông số thứ hai. Bạn cũng có thể kiểm tra api của bạn như trong quy tắc dưa chuột sau:
When /^I restfully delete (?:|the)user "([^\"]*)"$/ do |login|
visit(path_to("user \"#{login}\" page"), :delete)
end
Tôi đã cố gắng để làm điều đó và đã bị mắc kẹt trong một vấn đề lớn với restful_authentication (sử dụng AASM, một trong những mô hình nội bộ của restful_auth có vẻ như) và nhận được giải pháp đó để đăng nhập:
Given /^I am logged in with a new account$/ do
login = "test"
@current_user = User.new(
:login => login,
:password => 'generic',
:password_confirmation => 'generic',
:email => "#{login}@example.com",
:state => "active"
)
@current_user.save
x = User.find_by_login(login)
x.state = "active"
x.save!
visit "/login"
fill_in("login", :with => login)
fill_in("password", :with => 'generic')
click_button
response.body.should =~ /Logged in successfully/m
end
Modularize nó cho tập đoàn kiểm tra sạch hơn, đây là giới thiệu khái niệm tôi tìm thấy.
jayzes đã chia sẻ các bước thử nghiệm dưa chuột của mình bằng cách sử dụng Rack :: Test :: Methods, JSONpath, Nokogiri, vv để viết test cho json/xml API, bạn có thể tham khảo và tạo thêm cho các bước của riêng bạn.
- 1. GTK + kiểm tra giao diện người dùng
- 2. Làm cách nào để kiểm tra giao diện người dùng JQuery có thể phân loại bằng dưa chuột
- 3. Kiểm tra giao diện người dùng
- 4. Giao diện người dùng cho cURL để thử nghiệm API
- 5. Flex: Kiểm tra các thành phần giao diện người dùng ở cấp nhấp chuột?
- 6. Selenium là để kiểm tra giao diện người dùng web như ________ là để kiểm tra giao diện người dùng ứng dụng Windows
- 7. Bạn sử dụng ứng dụng nào để Kiểm tra giao diện người dùng web của mình?
- 8. Kiểm tra đơn vị Android với giải pháp cập nhật giao diện người dùng AsyncTask và giao diện người dùng
- 9. API giao diện người dùng cho libgdx
- 10. Dưa chuột + kiểm tra cảnh báo JS
- 11. Cách thiết kế API RESTful để kiểm tra thông tin đăng nhập của người dùng?
- 12. Thiết kế giao diện người dùng ứng dụng doanh nghiệp
- 13. Kiểm tra ứng suất bằng cách sử dụng Cucumber
- 14. Cập nhật giao diện người dùng ứng dụng Windows Store
- 15. Kiểm tra một API RESTful với POST từ Python
- 16. Phát triển giao diện người dùng giao diện người dùng - WPF
- 17. Tạo giao diện người dùng cho ứng dụng giao diện điều khiển
- 18. Hiệu ứng trả lại jQuery khi nhấp chuột không có giao diện người dùng jQuery
- 19. Giao diện người dùng lịch trong android
- 20. Visual Studio 2012 Kiểm tra giao diện người dùng được mã hóa của ứng dụng web - Mã bảo hiểm
- 21. Cách kiểm tra xem có đang chạy trên chuỗi giao diện người dùng trong Android không?
- 22. Tải thử nghiệm giao diện người dùng
- 23. Thư viện Tự động hóa Giao diện người dùng của Microsoft Vs Kiểm tra giao diện người dùng được mã hóa
- 24. Khung kiểm tra giao diện người dùng + Tích hợp liên tục?
- 25. Kiểm tra đơn vị Hoạt động điều khiển trong MVC4 với giao diện người dùng Kendo
- 26. Làm cách nào để kiểm tra giao diện người dùng WPF?
- 27. API để truy cập các phần tử giao diện người dùng trong Mac OS X
- 28. Mã hóa tay Mã kiểm tra giao diện người dùng được mã hóa
- 29. Chiến lược kiểm tra giao diện người dùng tự động trên máy ảo từ xa
- 30. Chạy kiểm tra tự động hóa giao diện người dùng trên máy chủ xây dựng
Ok Điều đó thực sự hữu ích. Tôi đang sử dụng Curb và XMLMapping để kiểm tra ứng dụng của mình. Nó hoạt động rất tốt, ngoại trừ một số mã bẩn nằm bên dưới. Nhưng tôi đoán tôi có thể có một số mã bẩn trong các bài kiểm tra. – Waseem