Tạo tệp kiểm thử thật đúng kích thước
PDF, PNG, DOCX, ZIP - tổng cộng 26 định dạng, và mỗi tệp là tệp thật mở được bằng phần mềm của nó, ở đúng kích thước bạn yêu cầu. Mỗi lần chạy còn ghi lại ứng dụng của bạn cần làm gì với từng tệp. Dòng lệnh và cửa sổ desktop, miễn phí, mã nguồn mở, chạy hoàn toàn trên máy của bạn.
Miễn phí, mã nguồn mở, GPL-3.0. Không cần đăng ký. Bản tải cho Windows và macOS đã được ký nên khởi động không cảnh báo.
-
26
định dạng thật, mỗi định dạng mở được bằng phần mềm của nó
-
1 byte
độ chính xác của mọi kích thước bạn yêu cầu, không bao giờ bị làm tròn lặng lẽ
-
0
kết nối đến bất cứ đâu - không tài khoản, không telemetry, không kiểm tra cập nhật
Vấn đề
Làm một tệp kiểm thử thì dễ. Làm đúng một nghìn tệp mới là phần mệt mỏi
Bạn đang kiểm thử phần mềm nhận tệp từ con người. Sớm hay muộn bạn sẽ cần:
- một PDF đúng 10 MB, để biết giới hạn tải lên có thật không
- ba tệp nằm hai bên giới hạn đó, để bắt lỗi lệch một
- 10.000 tệp nhật ký, để xem tác vụ ban đêm làm gì khi thư mục lớn
- một ZIP thật sự chứa 200 tài liệu, không phải cái vỏ rỗng với đuôi đúng
- một tệp 4 GB, mà không phải giữ tệp 4 GB trong kho mã của bạn
- các fixture giống hệt trên laptop và trên máy chủ build, từng byte
Đó là thứ nó thay thế. Nó được làm cho kỹ sư QA, tự động hóa kiểm thử và bất kỳ ai có mã đứng sau là biểu mẫu tải lên, quy trình nhập, bộ phân tích cú pháp hoặc hạn ngạch lưu trữ.
Điều làm nó khác biệt
Các trình tạo khác dừng ở các byte. Cái này trả lời điều bài kiểm thử của bạn thật sự hỏi
Một thư mục tệp vẫn để bạn tự quyết định mỗi tệp chứng minh điều gì. Mỗi lần chạy ở đây ghi một
manifest.json bên cạnh các tệp - danh sách đơn giản mọi thứ đã tạo, và với mỗi mục
là một kỳ vọng được khai báo.
Giả sử endpoint tải lên của bạn cho phép 1 MB. Hãy yêu cầu ba tệp nằm trên ranh giới đó:
tfg generate --preset size-boundaries --limit 1mb --spread 1B --format pdf --out ./edges
| Tệp | Byte | Hệ thống của bạn nên | Vì |
|---|---|---|---|
1mb_under_1b.pdf | 1048575 | chấp nhận | nó nằm trong giới hạn |
1mb_at_limit.pdf | 1048576 | chấp nhận | chính giới hạn được cho phép |
1mb_over_1b.pdf | 1048577 | từ chối | size_limit |
Ba tệp, ba câu trả lời khác nhau, ở dạng máy đọc được. Bài kiểm thử của bạn đọc manifest thay vì bạn tự viết các câu khẳng định:
import json, os
directory = "edges"
manifest = json.load(open(os.path.join(directory, "manifest.json")))
for entry in manifest["files"]:
response = upload(os.path.join(directory, entry["path"]))
outcome = entry["expected"]["outcome"]
if outcome == "accept":
assert response.ok, entry["path"]
elif outcome == "reject":
assert not response.ok, entry["path"]
Khi câu trả lời phụ thuộc chính sách của riêng bạn, manifest sẽ nói rõ
Nó ghi unspecified thay vì bịa ra kỳ vọng. Một trình tạo đoán mò tạo ra thất bại giả,
và bộ kiểm thử cứ báo động giả sẽ bị tắt.
Preset
Chọn câu hỏi, nhận cả bộ
Preset là một bộ tệp kiểm thử được thiết kế quanh một câu hỏi kiểm thử, để bạn không phải tự tìm ra tệp nào chứng minh điều gì. Mỗi preset có một trang nói nó thường tìm thấy gì, trong bộ có gì và mọi thiết lập nó nhận.
-
Một tệp hợp lệ và nhỏ nhất mà định dạng cho phép có qua được không?
empty-and-minimal -
Hệ thống của tôi có lưu, hiển thị và trả lại một tên tệp mà nó không ngờ tới không?
filename-handling -
Giới hạn kích thước có được áp dụng đúng nơi nó được khai báo không?
size-boundaries -
Việc nhập bảng của tôi có chịu được những gì công cụ thật xuất ra không?
tabular-import -
Trình đọc của tôi có biết tệp ở mã hóa nào, hay chỉ đoán?
text-encoding -
Biểu mẫu tải lên của tôi có nhận đúng thứ nó cần và từ chối phần còn lại không?
upload-validation
Bắt đầu nhanh
Ba lệnh để thấy nó hoạt động
-
Tạo một tệp
Một PNG, đúng hai megabyte:
tfg generate --format png --size 2mb --out ./fixtures -
Tạo nhiều tệp
Mười nghìn tệp nhật ký, mỗi tệp từ một đến tám kilobyte, với kích thước rút từ seed để ngày mai ra cùng một bộ. Cho mỗi lần chạy một thư mục riêng - manifest là bản ghi duy nhất về những gì một lần chạy đã ghi, nên công cụ từ chối ghi cái thứ hai đè lên:
tfg generate --format log --size-range 1kb-8kb --count 10000 --out ./logs -
Kiểm tra chúng, rồi xóa
verifycho bạn biết không có gì đổi chỗ.cleanupxóa đúng những gì đã ghi và không gì khác:tfg verify ./logs/manifest.json tfg cleanup ./logs/manifest.json --yes
Kích thước đếm theo 1024, như trình quản lý tệp của bạn, nên 2mb nghĩa là 2097152 byte.
Số byte thuần cũng được. Tài liệu bao gồm công thức, manifest và các
mã thoát.
Bạn nhận được gì
Làm cho bộ kiểm thử chạy không cần người trông
-
Kích thước chính xác, đến từng byte
Yêu cầu 10485761 byte và nhận đúng như vậy. Kích thước mà định dạng không thể đạt là một lỗi có lý do, không bao giờ là tệp sai kích thước.
-
26 định dạng thật
Không phải số không độn kèm một phần mở rộng. PNG được tạo mở trong trình xem ảnh, DOCX mở trong Word, ZIP giải nén được. Mỗi định dạng được kiểm tra bằng các trình đọc độc lập trước khi phát hành.
-
Một manifest là một oracle kiểm thử
Đường dẫn, kích thước, SHA-256, định dạng, seed, phiên bản công cụ - và việc hệ thống của bạn cần làm với tệp.
-
Tái lập được
Cùng công thức và cùng seed, cùng các byte, trên mọi máy. Hãy commit một công thức YAML nhỏ thay vì các fixture nhị phân lớn.
-
Hai giao diện, một động cơ
Một dòng lệnh làm cho CI và một cửa sổ desktop cho kiểm thử khám phá. Cái nào cũng không phải bản cắt giảm của cái kia, và một bài kiểm thử so sánh chúng từng khả năng một.
-
Hoàn toàn ngoại tuyến
Không tài khoản, không đám mây, không telemetry, không kiểm tra cập nhật. Bản nhị phân dòng lệnh hoàn toàn không biên dịch sẵn ngăn xếp mạng.
Tải xuống
Chọn bản dựng cho hệ thống của bạn
Giải nén kho lưu trữ rồi chạy. tfg là dòng lệnh và tfg-gui là cửa sổ
desktop. Không có trình cài đặt và không có gì phải thêm vào máy của bạn.
| Hệ thống | Dòng lệnh | Cửa sổ desktop |
|---|---|---|
| Windows | amd64, arm64 |
amd64 |
| Linux | amd64, arm64 |
amd64 |
| macOS | arm64 |
arm64 |
Cái nào được ký, cái nào không
Bản tải cho Windows và macOS đã được ký, nên khởi động mà không có cảnh báo nhà phát triển không xác
định. Bản Linux thì không, vì Linux desktop không có gì tương đương để ký. Mỗi kho lưu trữ
được liệt kê trong verify-SHA256SUMS.txt trên trang phát hành, để bạn kiểm tra
thứ mình đã tải.
Miễn phí, mã nguồn mở, GPL-3.0. Không cần đăng ký. Bản tải cho Windows và macOS đã được ký nên khởi động không cảnh báo.