2012-02-03 33 views
8

Tôi đang cố gắng xây dựng một khung kiểm tra tự động cho một số dịch vụ web nội bộ của chúng tôi (java) tại nơi làm việc. Mỗi dịch vụ có một bộ API (3-5), mặc dù điều này có thể dễ dàng đạt được, vấn đề đi kèm với một số API không hoạt động như hàm thuần túy, ví dụ: persistX, điều này có thể lưu trữ một thứ gì đó trong cơ sở dữ liệu và trả về một trường hợp ngoại lệ của lỗi. Không có cách nào dễ dàng để xác thực vì không có đầu ra ở đây. Vì vậy, tôi đã tự hỏi nếu điều này có thể một chút tổng quát, nói trong khi thử nghiệm API, người dùng có thể cung cấp một plugin đơn giản hoặc kịch bản cho khuôn khổ của một số loại có thể xác nhận thử nghiệm. Đây chỉ là một ý tưởng sẽ là tuyệt vời nếu ai đó có thể cho tôi biết một số tốt hơn hoặc bất kỳ tài nguyên nào về cùng một ý tưởng.Khung kiểm tra tự động

Cảm ơn

Trả lời

6

Tôi khuyên bạn nên robot framework. Nó là một khung điều khiển từ khóa được viết bằng python. Do đó, bạn có thể chạy nó trong JVM với jython có nghĩa là bạn có thể mở rộng nó bằng mã java (hoặc python, tất nhiên). Tôi đã sử dụng thành công nó để gọi API, sau đó xác minh kết quả bằng cách nhìn trộm vào cơ sở dữ liệu hoặc truy vấn hệ thống tệp.

Nó cũng hoạt động trên nền tảng .NET, có mô-đun selenium để kiểm tra giao diện người dùng, plugin jenkins và một số công cụ khác. Nó rất mở rộng và linh hoạt.

4

Điều bạn đang xem là ứng dụng kiểm tra hộp đen và hộp trắng và các công cụ hỗ trợ cả hai.

Đối với các dịch vụ web trả về phản hồi phù hợp, bạn có thể thực hiện kiểm tra hộp đen bằng cách xác minh dữ liệu trong phản hồi trả về. SoapUI là công cụ tốt nhất cho việc này.

Đối với các API không hoạt động như chức năng thuần túy, bạn thực hiện kiểm tra hộp trắng bằng cách xác minh các tác dụng phụ như kiên trì, tạo sự kiện, ghi nhật ký ... Đối với điều này bạn thích công cụ lập trình và SoapUI có thể hoặc không là tùy chọn đúng.

Chúng tôi thực hiện cả hai công việc của mình và sau khi đánh giá nhiều công cụ/khung công tác (SoapUI, RSSPec, Robotframework), tôi đã chọn Spock. Tại sao spock?

  1. Nó cho phép bạn viết bài kiểm tra ý định tiết lộ trong BDD phong cách
  2. Chúng tôi là Java cửa hàng và chúng tôi muốn sử dụng ngôn ngữ quen thuộc tương tự cho tự động hóa cũng nhưng với đường syntatic đơn giản. Và spock là tất cả dựa trên groovy. 2 hỗ trợ
  3. Tuyệt vời Webdriver/Selenium (bao gồm PageFactory) với Geb
  4. Nó được xây dựng trên đầu trang của JUnit vì vậy tất cả các plugin của JUnit có thể được thừa hưởng (mã số bảo hiểm, hudson/Jenkins hội nhập, vv)
  5. lô của API webservice và DSL XML (không cần phải làm việc với XPath cho các kịch bản đơn giản)
  6. cài đặt đơn giản (không giống như robotframework nó không đòi hỏi python, cài đặt Jython)

vv ....

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