0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng dẫn triển khai kiểm thử tự động với Robot Framework và Selenium trong AWS CodeBuild

Đăng vào 1 tháng trước

• 4 phút đọc

Giới thiệu

Bài viết này sẽ hướng dẫn bạn cách triển khai kiểm thử tự động (Automation Testing) bằng Robot Framework và Selenium trong môi trường AWS CodeBuild. Chúng ta sẽ tập trung vào Bước 5 của quy trình triển khai ứng dụng, đó là thực thi kiểm thử hồi quy (Regression Testing) sau khi các thay đổi mới được triển khai lên hệ thống.

Quy trình triển khai với AWS CodePipeline

Giả sử bạn đang sử dụng AWS CodePipeline để quản lý quy trình triển khai của dự án như sau:

  1. Quản lý mã nguồn: Các nhà phát triển (Developers) sẽ đẩy mã nguồn lên hệ thống quản lý mã nguồn như Bitbucket hoặc GitHub, qua đó kích hoạt tự động CodePipeline.
  2. Build và Đóng gói: Mã nguồn sẽ được xây dựng và đóng gói thành các file thực thi như file nhị phân (.exe), file JAR, Docker image hoặc các code artifact.
  3. Xác nhận triển khai: Gửi yêu cầu tới nhóm để xác nhận việc triển khai ứng dụng lên hạ tầng.
  4. Triển khai: File thực thi sẽ được triển khai lên hạ tầng (Server, AWS ECS, AWS EKS).
  5. Thực thi kiểm thử tự động: Cuối cùng, thực hiện kiểm thử tự động để đảm bảo ứng dụng hoạt động như mong đợi.
  6. Rollback nếu cần thiết: Nếu kiểm thử tự động thất bại, gửi yêu cầu đến nhóm để xem có cần quay lại phiên bản trước hay không.

Kiểm thử hồi quy là gì?

Kiểm thử hồi quy là một loại kiểm thử tự động được thực hiện sau mỗi lần chúng ta triển khai thay đổi mới lên hệ thống. Mục tiêu của kiểm thử này là đảm bảo rằng các chức năng đã có không bị ảnh hưởng hay gặp sự cố do những thay đổi mới.

Cấu trúc mã nguồn kiểm thử tự động

Bạn có thể tham khảo mã nguồn kiểm thử tự động tại GitHub. Trong bài viết này, mã nguồn kiểm thử sử dụng Robot Framework kết hợp với Selenium. Để thuận tiện, tôi đã fork đoạn mã này sang một repo riêng và thực hiện một số thay đổi cần thiết. Bạn có thể đăng ký sử dụng mã nguồn đó.

Chạy kiểm thử trên AWS CodeBuild

Trước khi bắt đầu, hãy chắc chắn rằng bạn hiểu cấu trúc và cách thức hoạt động của mã nguồn kiểm thử tại địa phương (local) trước khi chuyển sang AWS CodeBuild.

Tạo môi trường của Docker

Để thực thi mã kiểm thử trên AWS CodeBuild, chúng ta cần chuẩn bị một môi trường phù hợp bằng cách xây dựng Docker image. Mã Dockerfile mẫu dưới đây sẽ giúp bạn:

dockerfile Copy
FROM python:3.11.4

WORKDIR /app

RUN apt-get update -qq -y && \
    apt-get install -y \ 
        libasound2 \ 
        libatk-bridge2.0-0 \ 
        libgtk-4-1 \ 
        libnss3 \ 
        xdg-utils \ 
        git \ 
        wget && \
    wget -q -O chrome-linux64.zip https://storage.googleapis.com/chrome-for-testing-public/131.0.6778.204/linux64/chrome-linux64.zip && \
    unzip chrome-linux64.zip && \
    rm chrome-linux64.zip && \
    mv chrome-linux64 /opt/chrome/ && \
    ln -s /opt/chrome/chrome /usr/local/bin/ && \
    wget -q -O chromedriver-linux64.zip https://storage.googleapis.com/chrome-for-testing-public/131.0.6778.204/linux64/chromedriver-linux64.zip && \
    unzip -j chromedriver-linux64.zip chromedriver-linux64/chromedriver && \
    rm chromedriver-linux64.zip && \
    mv chromedriver /usr/local/bin/

COPY ./ /app
RUN pip install -r requirements.txt

ENTRYPOINT ["tail", "-f", "/dev/null"]

Cấu hình AWS S3

  1. Tạo một S3 bucket và cập nhật chính sách bucket để cho phép truy cập từ IP cụ thể.
json Copy
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<your-automation-report-s3-bucket-name>/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "<your-ip>/32"
                }
            }
        }
    ]
}

Cấu hình AWS CodeBuild

  • Chọn No source vì mã nguồn đã có trong Docker image.
  • Cấu hình Docker image đã xây dựng từ Dockerhub.

Thực thi Automation Testing

Chạy lệnh sau để thực hiện kiểm thử:

bash Copy
robot --nostatusrc --outputdir Output --timestampoutputs tests
aws s3 sync ./Output s3://<your-automation-report-s3-bucket-name>/robot-reports/

Tích hợp vào AWS CodePipeline

Cuối cùng, bạn có thể thêm bước kiểm thử tự động vào AWS CodePipeline của bạn ngay sau bước triển khai. Tạo một Stage mới có tên Automation Testing và thêm Action mới trong đó.

Kết luận

Bằng việc triển khai kiểm thử tự động với Robot Framework và Selenium trong AWS CodeBuild, bạn đảm bảo rằng mọi thay đổi đều không làm ảnh hưởng đến các chức năng hiện tại của hệ thống. Điều này rất quan trọng trong việc phát triển phần mềm hiện đại để duy trì chất lượng và hiệu suất của ứng dụng.

source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào