Giới Thiệu
Trong tự động hóa kiểm thử với Playwright sử dụng Python, thư viện Pandas thường được tích hợp để xử lý các bài kiểm tra dựa trên dữ liệu, quản lý kết quả kiểm thử và phân tích dữ liệu đã thu thập. Mặc dù Playwright nổi bật với khả năng tương tác với trình duyệt, Pandas bổ sung khả năng thao tác dữ liệu mạnh mẽ, đặc biệt là trong việc đọc dữ liệu đầu vào từ CSV, tổng hợp kết quả hoặc làm sạch đầu ra.
Mục Lục
- Hàm
pd.read_csv() - Hàm
pd.DataFrame() - Hàm
df.to_csv() - Hàm
df.head() - Hàm
df.loc[] - Hàm
df.apply() - Hàm
df.groupby() - Hàm
df.fillna() - Hàm
df.drop_duplicates() - Hàm
pd.merge()
1. pd.read_csv()
Chức năng: Tải dữ liệu từ tệp CSV vào một DataFrame.
Tại sao nó phổ biến trong tự động hóa Playwright: Rất cần thiết cho các bài kiểm tra dựa trên dữ liệu; ví dụ, đọc các trường hợp kiểm thử (URL, thông tin đăng nhập) từ CSV cho các lần chạy Playwright có tham số.
Ví dụ:
python
import pandas as pd
df = pd.read_csv('test_data.csv') # Tải URL cho page.goto() của Playwright
for url in df['url']:
page.goto(url)
Mẹo chuyên nghiệp: Sử dụng usecols=['url', 'expected_text'] để chỉ tải các cột liên quan nhằm tăng hiệu quả.
2. pd.DataFrame()
Chức năng: Tạo một DataFrame từ danh sách, từ điển hoặc các cấu trúc khác.
Tại sao nó phổ biến: Xây dựng DataFrames từ dữ liệu được trích xuất từ Playwright (ví dụ: thu thập dữ liệu bảng hoặc nhật ký kiểm thử) để dễ dàng thao tác.
Ví dụ:
python
data = {'url': ['example.com'], 'status': [200], 'title': ['Example']}
df = pd.DataFrame(data) # Lưu trữ kết quả page.title() của Playwright
Mẹo chuyên nghiệp: Truyền kết quả của page.query_selector_all() của Playwright dưới dạng danh sách của từ điển.
3. df.to_csv()
Chức năng: Xuất một DataFrame ra một tệp CSV.
Tại sao nó phổ biến: Lưu kết quả kiểm thử, siêu dữ liệu ảnh chụp màn hình hoặc dữ liệu thu thập được sau khi thực hiện Playwright để báo cáo hoặc tích hợp CI/CD.
Ví dụ:
python
df.to_csv('test_results.csv', index=False) # Xuất sau khi chạy kiểm thử Playwright
Mẹo chuyên nghiệp: Sử dụng index=False để tránh chỉ số hàng trong các tệp đầu ra.
4. df.head()
Chức năng: Hiển thị n hàng đầu tiên (mặc định 5) của một DataFrame.
Tại sao nó phổ biến: Xem nhanh dữ liệu kiểm thử đã tải hoặc kết quả trung gian trong quá trình gỡ lỗi kịch bản.
Ví dụ:
python
print(df.head()) # Kiểm tra dữ liệu CSV trước khi đưa vào Playwright
Mẹo chuyên nghiệp: Kết hợp với df.info() để có một tóm tắt đầy đủ về dữ liệu.
5. df.loc[]
Chức năng: Chọn hàng/cột bằng nhãn hoặc điều kiện boolean.
Tại sao nó phổ biến: Lọc các trường hợp kiểm thử cụ thể (ví dụ: theo loại trình duyệt) cho các lần chạy Playwright có mục tiêu.
Ví dụ:
python
filtered = df.loc[df['browser'] == 'chromium'] # Chạy chỉ các bài kiểm thử trên Chromium
for _, row in filtered.iterrows():
page.goto(row['url'])
Mẹo chuyên nghiệp: Sử dụng các mặt nạ boolean như df.loc[df['status'] == 'fail'] để phân tích các lỗi.
6. df.apply()
Chức năng: Áp dụng một hàm dọc theo một trục của DataFrame.
Tại sao nó phổ biến: Xử lý văn bản đã thu thập hoặc tính toán các chỉ số (ví dụ: thời gian phản hồi) từ các bản ghi của Playwright.
Ví dụ:
python
df['clean_price'] = df['price'].apply(lambda x: float(x.replace('$', ''))) # Làm sạch giá đã thu thập
Mẹo chuyên nghiệp: Sử dụng axis=1 cho các thao tác theo hàng trong việc biến đổi dữ liệu kiểm thử.
7. df.groupby()
Chức năng: Nhóm dữ liệu theo các cột và áp dụng tổng hợp.
Tại sao nó phổ biến: Tổng hợp kết quả kiểm thử theo loại (ví dụ: tỷ lệ thành công/thất bại theo điểm cuối) cho báo cáo.
Ví dụ:
python
summary = df.groupby('url')['status'].agg(['count', 'mean']) # Tính trung bình thành công theo URL
Mẹo chuyên nghiệp: Kết hợp với .agg({'pass': 'sum', 'total': 'count'}) để có các tóm tắt tùy chỉnh.
8. df.fillna()
Chức năng: Điền các giá trị thiếu (NaN) bằng một giá trị hoặc phương pháp chỉ định.
Tại sao nó phổ biến: Xử lý dữ liệu không đầy đủ từ các tương tác không ổn định của Playwright (ví dụ: tiêu đề thiếu).
Ví dụ:
python
df['title'] = df['title'].fillna('N/A') # Điền tiêu đề trang thiếu
Mẹo chuyên nghiệp: Sử dụng method='ffill' cho việc điền trước trong các nhật ký kiểm thử theo thời gian.
9. df.drop_duplicates()
Chức năng: Xóa các hàng trùng lặp dựa trên các cột.
Tại sao nó phổ biến: Làm sạch tập dữ liệu cho các kịch bản kiểm thử duy nhất, tránh các lần thực hiện Playwright không cần thiết.
Ví dụ:
python
df = df.drop_duplicates(subset=['url']) # Đảm bảo URL là duy nhất
Mẹo chuyên nghiệp: Chỉ định keep='first' để giữ lại lần xuất hiện đầu tiên.
10. pd.merge()
Chức năng: Kết hợp hai DataFrames trên một cột khóa.
Tại sao nó phổ biến: Kết hợp dữ liệu kiểm thử cơ sở với kết quả Playwright để so sánh (ví dụ: dự kiến so với thực tế).
Ví dụ:
python
results = pd.merge(df_expected, df_actual, on='url', suffixes=('_exp', '_act'))
Mẹo chuyên nghiệp: Sử dụng how='inner' cho các phép hợp chỉ giao nhau trong các kịch bản xác thực.
Tại Sao Những Hàm Này Quan Trọng Trong Ngữ Cảnh Playwright?
Các hàm này tỏa sáng trong các quy trình làm việc lai: Playwright xử lý các tác vụ trình duyệt động, trong khi Pandas quản lý dữ liệu tĩnh hoặc bán cấu trúc. Ví dụ, trong các bộ kiểm thử pytest dựa trên dữ liệu, read_csv tải đầu vào, apply xử lý đầu ra và groupby tạo báo cáo. Chúng nhẹ, tích hợp liền mạch với các fixture của pytest và có thể mở rộng cho các pipeline CI.
Để bắt đầu, hãy cài đặt qua pip install pandas playwright pytest-playwright, sau đó thử nghiệm trong Jupyter Notebook với một ví dụ đơn giản về việc thu thập dữ liệu Playwright cho vào một DataFrame.