Ebay nâng cấp BOT AI, phát triển giải pháp kiểm tra tự động thông tin người dùng hàng loạt, vào ngày 11/2/2022

Hệ thống thử nghiệm hàng loạt là một giải pháp thử nghiệm hoàn toàn mới. Nó được thiết kế như một hệ thống tập trung nhưng độc lập. Nó hỗ trợ chạy cùng một công việc cho các phiên bản giống nhau dựa trên các phiên bản mã khác nhau và cung cấp tự động so sánh đầu cuối.

Ý tưởng cơ bản là khung công tác hàng loạt cung cấp một công việc cơ sở theo mặc định. Vì tất cả các ứng dụng trang eBay phải sử dụng khuôn khổ hàng loạt, công việc khuôn khổ được cung cấp bên trong có thể chạy nguyên bản mà không cần bất kỳ mã ứng dụng bổ sung nào. Ví dụ: trong trường hợp mã ứng dụng hiện tại đang hoạt động tốt, công việc khung có thể chạy hai lần dựa trên các mã khác nhau. Các chỉ số trước và sau có thể được so sánh, nếu có bất kỳ trường hợp ngoại lệ nào xảy ra.

Cách tiếp cận sẽ giải quyết điểm đau được đề cập ở trên.

  1. Công việc khung có thể được chạy nhiều lần trong quá trình sản xuất nhưng không có tác động đến trang web vì không có logic nghiệp vụ bên trong nó.
  2. Công việc khung cung cấp một thử nghiệm end-to-end mặc định. Nó cực kỳ hữu ích cho khả năng kiểm tra, đặc biệt là đối với những ứng dụng không có kiểm tra nhưng yêu cầu đảm bảo chất lượng sau khi thay đổi mã.
  3. Công việc khung có thể được gọi trong bất kỳ ứng dụng trang web hàng loạt nào, có nghĩa là nó là một giải pháp phổ biến có thể hoàn toàn tự động.

Hệ thống cung cấp ba loại so sánh để giải quyết các thách thức trong thử nghiệm.

  • Đáp ứng Phản hồi
    hàng loạt bao gồm hai phần: một là mã thoát, phần còn lại là trạng thái thoát. Mã thoát là giá trị hoàn trả công việc trở lại bộ lập lịch, là tín hiệu chính cho trường hợp dòng công việc. Dòng công việc có thể được xác định trong bộ lập lịch, trong đó một nhóm hàng loạt được coi như một nút dòng công việc. Bộ lập lịch sẽ gửi công việc tiếp theo đến các nhánh luồng khác nhau dựa trên mã thoát công việc đang chạy trong nhóm trước đó. Trạng thái thoát là giá trị để đánh dấu công việc có thành công hay không.

  • Nhật ký Nhật ký
    hàng loạt cho biết ứng dụng đang chạy logic. Nếu bất kỳ ngoại lệ mới nào xuất hiện hoặc số lỗi của một ngoại lệ hiện có tăng mạnh trong nhật ký, thì rất có thể mã mới của ứng dụng có vấn đề.

  • Thời gian
    thực thi Thời gian thực thi bằng thời gian khởi động ứng dụng cộng với thời gian thực thi công việc khung. Cùng một công việc khung nên mất cùng thời gian để thực thi. Nếu thời gian thực thi tăng lên đáng kể, mã mới có nguy cơ ảnh hưởng đến hiệu suất.

Quy trình làm việc của hệ thống kiểm tra hàng loạt

Quy trình làm việc của hệ thống kiểm tra hàng loạt được hiển thị bên dưới.

Các bước nhân bản chi tiết là:

  1. Kích hoạt bộ lập lịch để chạy công việc khung trên một tệp kê khai cũ;
  2. Kích hoạt bộ lập lịch để chạy công việc khung trên một tệp kê khai mới; và
  3. Kiểm tra kết quả so sánh.

Ngành kiến ​​trúc

Bên trong hệ thống kiểm tra hàng loạt, có một số thành phần để hoạt động cùng nhau. Bộ điều khiển là thành phần quan trọng như một bộ điều phối để xử lý trình tự làm việc sau đây.

  1. Đọc tệp cấu hình để biết các quy tắc so sánh.
  2. Quyết định xem nó có cần triển khai tệp kê khai hay không. Trong hầu hết các trường hợp, kịch bản xảy ra trong cùng một nhóm lô. Không cần thiết phải triển khai tệp kê khai cũ.
  3. Kiểm tra xem lịch trình để kích hoạt công việc khung có được tạo trong hệ thống lập lịch hay không. Nếu không, nó sẽ kích hoạt ứng dụng khách lập lịch để tạo lịch biểu.
  4. Kích hoạt công việc khung và thu thập dữ liệu đang chạy, chẳng hạn như mã thoát, trạng thái và nhật ký.
  5. Kích hoạt ứng dụng khách triển khai để triển khai tệp kê khai mới.
  6. Kích hoạt công việc khung và thu thập lại dữ liệu đang chạy.
  7. Tuân theo các quy tắc được xác định trong tệp cấu hình, so sánh dữ liệu đang chạy và xuất kết quả.

Tệp cấu hình là đầu vào quan trọng để đo kiểm tra có màu xanh lá cây hay không. Cài đặt quy tắc của mỗi ứng dụng phụ thuộc vào nhu cầu của ứng dụng – ví dụ: nếu một ứng dụng làm nóng một số bộ nhớ đệm khi khởi động – thì thời gian thực thi cho phép theo đó sẽ được đặt lâu hơn.

Tập tin cấu hình

Bộ điều khiển sẽ đọc tệp cấu hình phá vỡ các quy tắc thử nghiệm từ kho lưu trữ git. Dưới đây là một tệp mẫu với phần giải thích chi tiết cách thiết lập các quy tắc.

1  FrameworkSmokeTestJob:
2    configuration:
3      timeout: 5
4    validation:
5      execution:
6        validatorType: batch-execution
7        validatorOverrides:
8          returnCode: 0
9          durationMax: 3
10         state: SUCCESS
11     log:
12       validatorType: batch-log-allowlist
13       validatorOverrides:
14         allowlist:
15           - "~.*.*::2"

  • “FrameworkSmokeTestJob” ở dòng một là tên công việc khung sẽ được chạy.
  • “Thời gian chờ 5” ở dòng ba xác định năm phút là thời gian thực hiện hàng loạt tối đa. Nếu công việc hàng loạt chạy hơn năm phút, kiểm tra sẽ không thành công với ngoại lệ thời gian chờ.
  • Từ dòng năm đến dòng 10, nó xác định các quy tắc so sánh thực thi. Dòng 8 và dòng 10 có nghĩa là mã trả về phải bằng 0 và công việc phải là trạng thái thành công, được yêu cầu bắt buộc bởi công việc khung. Dòng chín xác định quy tắc không cho phép thời gian thực hiện quá ba phút.
  • Từ dòng 11 đến dòng 15, nó xác định các quy tắc so sánh nhật ký. Chuỗi regex ở dòng 15 mô tả quy tắc: nếu bất kỳ ngoại lệ nào xuất hiện nhiều hơn hai lần, công việc sẽ được coi là không thành công. Lý do cho phép hai ngoại lệ là để tránh ngoại lệ nhiễu. Ví dụ: ứng dụng ném một ngoại lệ vô hại hai lần trong khi khởi động. Nó nên được bỏ qua và xác định trong phần danh sách cho phép.

Từ tệp ví dụ, người dùng công cụ kiểm tra có thể linh hoạt điều chỉnh các quy tắc theo trạng thái chạy thực của ứng dụng. Hơn nữa, nếu có một số công việc khác của ứng dụng này phù hợp với công việc thử nghiệm, chúng cũng có thể được cấu hình, nghĩa là nó hỗ trợ nhiều công việc trong tệp cấu hình. Ngay cả khi không có công việc như vậy, công việc khung được cấu hình theo mặc định.

Tóm lược

Hệ thống thử nghiệm hàng loạt cung cấp giải pháp thử nghiệm thành công cho việc nâng cấp khung hệ thống hàng loạt trong eBay, vốn đã có lợi cho việc nâng cấp khung. Nó có thể vượt qua những thách thức chưa từng có về việc thiếu các trường hợp thử nghiệm end-to-end cho các ứng dụng hàng loạt kế thừa và so sánh dựa trên “ví dụ điển hình”. Nó cung cấp một phương pháp xác minh không trực tuyến để đảm bảo chất lượng. Mặc dù kịch bản hiện tại là để nâng cấp khung, nó cũng có thể giúp xác minh các thay đổi mã ứng dụng và các trường hợp nâng cấp hệ điều hành. Nó cung cấp một phép đo chung cho một ứng dụng hàng loạt.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

error: Cảnh báo !!!
0911111334
icons8-exercise-96 chat-active-icon