Gắn tag tự động cho TeamCity build configuration

Sunday, October 10, 2021
Edit this post


Là một automation QA, hẳn sẽ có một lúc nào đó bạn cần tự set up một job nho nhỏ trên một server nào đó để những dòng automation script "thần thánh" của bạn được build và chạy tự động bất kỳ lúc nào chỉ với một cú nhấp chuột hoặc thậm chí có thể được hẹn giờ để chạy.

Bên cạnh Jenkins–một trong automation application server phổ biến nhất hiện nay thì chúng ta còn có TeamCity của JetBrains cũng được sử dụng nhiều không kém và ngày càng được tin dùng. 

Hôm nay tôi muốn chia sẻ tới các bạn một use case cụ thể đối với TeamCity mà tôi đang apply cho team của mình.

Chúng tôi có một automation framework được phát triển trên nền C#/Selenium. Tôi muốn cấu hình một universal TeamCity job có thể được dùng để chạy target tới nhiều môi trường khác nhau tùy theo trait name (hay test category) được chọn từ input. Chuyện này đã được xử lý xong nhưng vấn đề là rất khó để phân biệt giữa các build được chạy cái nào là cho môi trường nào và cho bộ test category nào.

Từ đó chúng tôi quyết định dùng chức năng gắn tag bằng tay để dễ phân biệt. Tuy nhiên theo thời gian việc gắn tag bằng tay trở nên phiền phức vì vẫn phụ thuộc vào con người nên dễ bị nhầm lẫn và nhất là không thống nhất vì mỗi người lại gắn tag một kiểu.

Xuất phát từ nhu cầu đó, tôi quyết tâm tìm hiểu để việc gắn tag được thực hiện hoàn toàn tự động mỗi khi build được chạy, và tôi đã thành công, kết quả như sau:


Như các bạn đã thấy, mỗi lần có một build mới được chạy, một tag sẽ được tự động gắn vào build giúp dễ dàng nhận biết build đó được chạy cho client nào, môi trường nào (QA, UAT, SUPP...) và cho bộ test nào. Format của tag của cũng được thống nhất vậy nên không còn chuyện tag được gắn lộn xộn mỗi người một kiểu nữa.

Vậy tôi đã làm như thế nào? Trong quá trình tìm hiểu, tôi phát hiện ra TeamCity có hỗ trợ các API endpoint để chúng ta có thể tương tác. Ứng dụng của các endpoint cũng rất đa dạng từ việc lấy thông tin build, kết quả build, trigger build v.v... và gắn tag cũng là một trong số đó. Các bạn có thể đọc documentation chi tiết ở đây.

Dự án hiện tại tôi đang làm việc sử dụng TeamCity server là các cloud agents chạy Windows Server. Vậy nên trong build step, tôi chỉ cần thêm vào một step cho Power Shell (một công cụ được kỳ vọng là Terminal của Windows) như hình đưới và đặt nó làm build step đầu tiên. Với PowerShell chúng ta có thể lập trình để gửi đi các API request tới TeamCity phục vụ cho việc gắn tag.


Hãy nhìn vào Script Source ở trên, đó là nơi những dòng code sẽ thực hiện việc gắn tag tự động. Từ dòng 1 tới 4, một đoạn token sẽ được tạo ra từ username và password mặc định của TeamCity. Chúng ta sẽ dùng token này để bỏ vào field Authorization của API header (từ dùng 6 tới 8). Từ dòng 10 tới 15 là nơi bạn tùy biến đoạn tag muốn gắn vào và body của API request message. Cuối cùng ở dòng 17 là nơi bạn sẽ gửi đi request gắn tag của mình tới TeamCity endpoint.

Chỉ đơn giản như vậy thôi. Bạn có thể thử gọi tới API endpoint này trong Postman trước để kiểm chứng trước khi viết PowerShell script nhé. Chúc các bạn thành công!

.
Xin vui lòng chờ đợi
Dữ liệu bài viết đang được tải về

💻Nhận dạy online 1 kèm 1 Automation Test từ cơ bản tới nâng cao (From Zero to Hero) 😁😁😁
Lộ trình gồm 3 phần:
1) Kỹ thuật lập trình và tư duy lập trình cơ bản
2) Nhập môn kiểm thử (Manual Test)
3) Kiểm thử tự động (Automation Test) + Chuẩn bị cho phỏng vấn
* Lộ trình chi tiết: Xem tại đây

🎓Đối tượng người học:
- Những bạn bị mất gốc căn bản môn lập trình.
- Những bạn muốn theo con đường kiểm thử (testing), đặc biệt là kiểm thử tự động (Automation Test).

🦘Người giảng dạy:
- Mình sẽ là người trực tiếp hướng dẫn.
- Nếu là các vấn đề ngoài chuyên môn hoặc sở trường, mình sẽ nhờ các anh chị em khác cũng làm trong ngành.

🤓Giới thiệu:
- Mình đã có hơn 10 năm kinh nghiệm làm IT ở cả trong và ngoài nước. Trong đó 3 năm đầu là làm lập trình viên Java, sau đó bén duyên với mảng Automation Test và theo nghề tới tận bây giờ. Mình được đào tạo chính quy về IT từ một trường Đại học danh tiếng ở TP.HCM (hệ kỹ sư 4 năm rưỡi), có chứng chỉ ISTQB, có thể giao tiếp tốt bằng tiếng Anh và có kinh nghiệm làm việc thực tế ở cả 2 mảng Outsource và Product. Title chính thức của mình là QA Automation Engineer, tuy nhiên, mình vẫn làm những dự án cá nhân chuyên về lập trình ứng dụng như Học Tiếng Anh StreamlineSách Nhạc. Mình là người có thái độ làm việc chuyên nghiệp, chăm chỉ và luôn nhiệt tình trong công việc.

💵Chi phí và hình thức thanh toán:
- Các bạn vui lòng liên hệ qua email songtoigianvn@gmail.com (email, chat, hoặc call) để book nội dung và khung giờ học (từ 8h tối trở đi).
- Mức phí: 150.000đ/buổi, mỗi buổi 60 phút.
- Lộ trình From Zero to Hero: 4.350.000đ (29 buổi).
- Bạn có thể học riêng và đóng tiền theo từng phần nếu muốn.
- Có thể học trước 1-2 buổi trước khi quyết định đi full lộ trình hoặc từng phần.
- Thanh toán qua Momo, chuyển khoản v.v...
BÌNH LUẬN
© Copyright by CUỘC SỐNG TỐI GIẢN
Loading...