2009-08-11 39 views
7

Tôi có một truy vấn Trong ứng dụng của mình, chúng tôi có rất nhiều thẻ HTML. Trong quá trình phát triển, nhiều thẻ không được cung cấp bất kỳ id nào vì không có yêu cầu. Bây giờ nhóm QA muốn tự động hóa các trường hợp thử nghiệm bằng cách sử dụng QTP. Trong hầu hết các trường hợp, công cụ này không nhận ra vì nó không tìm thấy id cho hầu hết các thẻ HTML. Bây giờ chúng tôi được yêu cầu thêm id vào tất cả các thẻ HTML. Tôi muốn biết liệu sẽ có bất kỳ hiệu ứng nào thêm thuộc tính id vào các thẻ này hay không. Ngay cả tác động tích cực cũng được chào đónThêm id vào thẻ HTML để tự động hóa QA

+1

Trùng lặp: http://stackoverflow.com/questions/1230738/how-can-i-automatically-validate-that-i-have-an-html-id-on-every-element – NickFitz

+0

Thêm thẻ "tự động- các kiểm tra "," gui-automation " –

Trả lời

4

Tôi không nghĩ rằng sẽ có bất kỳ tác động tích cực hay tiêu cực nào: có thể kích thước của trang HTML sẽ tăng một chút, nhưng có lẽ không nhiều.

Tuy nhiên, bạn có chắc chắn bạn cần đặt thuộc tính "id" trên mỗi thẻ HTML của các trang của mình không? Sẽ không chỉ một vài trong số đó là đủ? Giống như trên các trường biểu mẫu, trên các liên kết, trên các thông báo lỗi; và đó có lẽ là về nó?

Một điều bạn cần lưu ý là "id", như trong "số nhận dạng", phải là duy nhất; có nghĩa là nó có thể tốt, trước khi bắt đầu thêm chúng, để xác định một số loại "chính sách id", ví dụ, "các id cho các phần tử thuộc loại đó nên được đặt tên theo cách đó".

Và đối với dự án tiếp theo của bạn: có developpers thêm những khi theyr're developping ;-)
(Và sau chính sách này, tất nhiên)


Bây giờ tôi đang suy nghĩ về nó : một hiệu ứng tích cực có thể là viết mã Javascript tương tác dễ dàng hơn với tài liệu HTML của bạn - nhưng điều đó sẽ đúng cho các dự án hoặc diễn biến tiếp theo cho dự án này, khi những id đó đã có trong HTML vào thời điểm đó người phát triển đặt mã JS vào vị trí ...

+1

+1 cho phải là ghi chú duy nhất. Tôi đã bị sốc khi thấy nhiều nhà phát triển tin rằng đây chỉ là "hướng dẫn" và bản sao đó là tốt. Tôi đã cố gắng để tư vấn, nhưng họ dường như nội dung để đi thuyền Titanic anyway. – scunliffe

1

Nếu bạn đang nói về các tác dụng phụ - KHÔNG. Việc thêm id sẽ không gây ra bất kỳ sự cố nào (ngoài việc tham gia một số byte thừa)

Nếu bạn thực sự cần thêm id, hãy tiếp tục và thêm chúng.

0

http://www.w3.org/TR/html4/struct/links.html#anchors-with-id nói:

Thuộc tính id và tên chia sẻ cùng một không gian tên. Điều này có nghĩa là cả hai đều không thể xác định một neo có cùng tên trong cùng một tài liệu. Có thể sử dụng cả hai thuộc tính để chỉ định mã định danh duy nhất của một phần tử cho các phần tử sau: A, APPLET, FORM, FRAME, IFRAME, IMG và MAP. Khi cả hai thuộc tính được sử dụng trên một phần tử, giá trị của chúng phải giống hệt nhau.

4

Vì chưa có câu trả lời liên quan đến QTP.

Nhận dạng GUI trong QTP là hướng đối tượng. Để xác định một đối tượng QTP cần một sự kết hợp độc đáo của các thuộc tính của đối tượng và kiểm tra chúng tốt hơn để càng nhanh càng tốt - đó là lý do tại sao ID HTML sẽ là lý tưởng.

Hiện tại, nơi nó đặc biệt quan trọng - đối với các đối tượng không có số nhận dạng duy nhất khác. Ví dụ điển hình nhất - bảng html. Nội dung của họ là động, số lượng của họ trên trang có thể thay đổi. Bằng cách thêm ID HTML, bạn cho phép cơ chế nhận dạng được chuyển thẳng đến bảng bên phải.

Đối tượng có các thuộc tính duy nhất khác có thể được nhận dạng tốt mà không có ID HTML. Ví dụ: nếu bạn có một liên kết "gửi" trên trang QTP sẽ nhận dạng thành công liên kết đó bằng văn bản bên trong.

Vì vậy, câu trả lời theo ngữ cảnh cụ thể: không bắt đầu thêm id vào mỗi thẻ.Yêu cầu các nhân viên tự động hóa chuẩn bị một danh sách các đối tượng mà họ gặp vấn đề. Và thêm id vào các đối tượng đó.

PS. Nó cũng phụ thuộc vào kỹ năng lập trình tự động hóa. Có các phương pháp lập trình và nhận dạng động. Chúng cho phép truy xuất đúng đối tượng ngay cả khi không có id được cung cấp.

2

Như Albert nói, QTP không chỉ dựa vào yếu tố id, trên thực tế do thực tế rằng nhiều ứng dụng web tạo ra khác nhau id s cho mỗi phiên, (như xa như tôi nhớ) các id bất động sản không phải là một phần của mô tả mặc định cho hầu hết các đối tượng thử nghiệm web.

QTP khá giỏi trong việc nhận diện các điều khiển web đơn giản nhất và nếu bạn gặp phải sự cố, dự án Web Extensibility sẽ giúp bạn thu hẹp khoảng cách giữa ngữ nghĩa của ứng dụng web và HTML thô được tạo in Nếu một điều khiển phức tạp được QTP nhận dạng là WebElement (thực tế là div có chứa mã số span điều khiển mã), bạn sẽ hiểu rõ vấn đề nhận dạng đối tượng vì có nhiều số div s trên trang nhưng có lẽ ít phức tạp hơn kiểm soát.

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