Tôi mới sử dụng Cucumber và Ruby. Tôi là một nhà phân tích kinh doanh được sử dụng để viết yêu cầu và kiểm tra các trường hợp, và tôi đã đọc lên trên Cucumber và Watir, nhưng tôi gặp khó khăn khi nhận được những gì tôi cần phải xảy ra để thực sự làm việc.Hồ sơ dưa chuột và móc toàn cầu để chọn trình duyệt
Tôi sẽ thử nghiệm một bộ trang web trong IE, Firefox và Chrome cũng như các loại người dùng khác nhau. Tôi đang viết và gắn thẻ các tính năng và tạo hồ sơ trong cucumber.yml để tôi có thể chạy dưa chuột với -p để chỉ chạy các bài kiểm tra được gắn thẻ thích hợp cho các loại người dùng khác nhau.
Tôi đang tạo các đối tượng trang khác nhau để tôi có thể dễ dàng đăng nhập với tư cách Người dùng cơ bản, Người dùng báo cáo, Người dùng trình chỉnh sửa, v.v. Các tệp tính năng sẽ có các trường hợp hơi khác nhau và điều kiện chuyển/lỗi cho từng loại người dùng. bước defs sẽ gọi các đối tượng trang thích hợp để đăng nhập như những loại người dùng.
Thay vì sao chép các bài kiểm tra ba lần mỗi lần để mở trình duyệt phù hợp với trình quản lý web watir và thay vì để trình duyệt mở và đóng với từng kịch bản, tôi muốn tạo một móc nối toàn cầu trong env.rb hoặc hooks.rb để mở trình duyệt một lần và chỉ một lần trước khi bất kỳ tính năng nào được chạy, và sau đó đóng nó với và sau câu lệnh từ móc toàn cục khi các tính năng đều chạy. Một lần nữa, tôi đang sử dụng hồ sơ gọi các kịch bản được gắn thẻ để chọn thử nghiệm nào sẽ chạy cho từng loại người dùng.
Sự cố tôi gặp phải là một bước trước đó, chỉ cần mở trình duyệt. Tôi biết cách sử dụng watir-webdriver để mở mỗi trình duyệt.
Những gì tôi muốn được đưa móc toàn cầu vào để mở trình duyệt trước khi thử nghiệm bất kỳ. Vì vậy, trong env.rb tôi sẽ đặt trình duyệt = Watir :: Browser.new call.
Những gì tôi muốn làm là có ba móc toàn cầu riêng biệt, mỗi cái cho IE, Chrome và Firefox và gọi chúng dựa trên điều kiện được truyền từ hồ sơ trong dưa chuột, nhưng tôi không thể làm việc. Tôi đã thử gắn thẻ chúng và điều đó không hiệu quả. Bạn không thể gắn thẻ móc toàn cầu? Tôi đã thử nó với một nếu/sau đó/thiết lập khác nhưng điều đó đã không làm việc hoặc.
Tôi muốn để có thể vượt qua một tham số hoặc thẻ từ một hồ sơ trong cucumber.yml gọi chỉ có một móc toàn cầu, chẳng hạn như:
basicuser_overviewtests_ie: --tags @basic @overview @ie
basicuser_overviewtests_ff: --tags @basic @overview @firefox
Basicuser_newpagetests_ie: --tags @basic @newpage @ie
Etc ... hai thẻ đầu tiên sẽ tham khảo đến các kịch bản, phần thứ ba đến móc chính xác của env.rb.
Hoặc, nếu tôi có thể chuyển một biến từ tiểu sử, điều đó cũng sẽ hoạt động. Tôi không thể hiểu làm thế nào tôi có thể sử dụng một biến môi trường ở đó mặc dù.
Tôi có thiếu gì đó không? Có đủ thông tin này để giải thích vấn đề không? Cảm ơn bạn!
UPDATE: Một phần của vấn đề dường như là dưa chuột mà không nhận ra [hỗ trợ] thư mục khi nó đã vào mức độ tương tự như [các tính năng] thư mục, nó cần phải được theo [các tính năng]. Các thông tin cuke tôi đã nói nó sẽ là Ok ở cùng cấp chứ không phải là các tính năng bên trong. Không phải vậy. Vì vậy, bây giờ tôi có thể nhận được ba móc toàn cầu của tôi cho các trình duyệt để chạy, nhưng gắn thẻ không giúp đỡ, tất cả chúng chạy cùng một lúc ngay cả khi được gắn thẻ chỉ chạy trước khi các tính năng được gắn thẻ @ie hoặc với các hồ sơ được gắn thẻ chỉ để chạy @. I E.
Nó hoạt động, cảm ơn bạn! Có vẻ như tôi đã đi đúng hướng - tôi đã cố gắng làm việc với các biến môi trường, nhưng tôi không có cú pháp đúng, và tôi đã chuyển sang việc gắn thẻ, mà không hoàn toàn hoạt động. Điều này hoạt động chính xác như tôi cần và bài đăng trên blog của bạn đã giúp ích rất nhiều - nó tương đương với loại thử nghiệm mà tôi đang thực hiện. Cám ơn bạn một lần nữa! –
Tuyệt vời! Mừng vì tôi có thể giúp. Nếu bạn chưa có, hãy chọn Cuốn sách dưa chuột. Nó đã được SO hữu ích cho tôi. –