Menu

Trình tạo thư tạm thời cho kiểm thử xác minh

Trình tạo thư tạm thời giúp bạn có địa chỉ nhận thư dùng một lần để thử luồng xác minh và mã dùng một lần. Bài này so sánh hộp thư tạm thời với bí danh và miền bắt tất cả.

Đăng ngày

  • thư điện tử
  • kiểm thử
  • dữ liệu thử

Trình tạo thư tạm thời là công cụ cấp cho bạn một địa chỉ nhận thư dùng trong thời gian ngắn, để bạn thử được những luồng bắt buộc phải có thư thật gửi tới, chẳng hạn bước xác minh địa chỉ thư điện tử hay bước nhập mã dùng một lần. Nó giải quyết một vấn đề rất cụ thể: phần lớn luồng đăng ký không thể kiểm thử trọn vẹn nếu bạn không có một hộp thư thật sự nhận được thư, nhưng bạn cũng không muốn dùng hộp thư cá nhân của mình hay của đồng nghiệp. Đọc hết bài này, bạn sẽ phân biệt được hộp thư tạm thời với bí danh và với miền bắt tất cả, hiểu vì sao nhiều trang chặn những miền dùng một lần, biết khi nào nên chuyển sang miền riêng, và nhận ra những trường hợp mà công cụ này không phù hợp.

Hộp thư tạm thời, bí danh và miền bắt tất cả khác nhau ở đâu?

Hộp thư tạm thời là một địa chỉ nhận thư tồn tại trong thời gian ngắn, thường do một dịch vụ công khai cấp phát, và nội dung thư thường chỉ được giữ trong vài giờ hoặc vài ngày. Bạn không sở hữu miền, không kiểm soát hạ tầng, và không có gì bảo đảm rằng địa chỉ đó sẽ còn hoạt động vào tuần sau. Đổi lại, bạn có ngay một địa chỉ dùng được mà không cần cấu hình gì.

Bí danh là một cơ chế khác hẳn về bản chất. Với bí danh, thư gửi tới một địa chỉ phụ vẫn được chuyển về hộp thư chính của bạn, nên bạn kiểm soát được luồng thư và có thể tắt bí danh bất cứ lúc nào. Bài thư tạm thời và bí danh khác nhau thế nào phân tích sự khác biệt này, trong đó điểm mấu chốt là bí danh gắn với một hộp thư thật còn hộp thư tạm thời thì không.

Miền bắt tất cả là cơ chế thứ ba, và nó mạnh nhất cho mục đích kiểm thử. Bạn cấu hình miền của mình để nhận mọi thư gửi tới bất kỳ địa chỉ nào thuộc miền đó, kể cả những địa chỉ chưa từng được tạo. Nhờ vậy, bộ kiểm thử của bạn có thể tự nghĩ ra một địa chỉ mới cho mỗi lần chạy và vẫn nhận được thư, mà không cần gọi một dịch vụ bên ngoài để xin cấp phát. Bài miền bắt tất cả cho môi trường thử đi sâu vào cách dựng cấu hình này.

Ba cơ chế này không thay thế nhau hoàn toàn. Hộp thư tạm thời phù hợp khi bạn cần một địa chỉ nhanh và không muốn đụng tới hạ tầng. Miền bắt tất cả phù hợp khi bạn cần sự ổn định và muốn bộ kiểm thử tự chủ. Bí danh phù hợp khi bạn cần nhận thư trong hộp thư thật nhưng vẫn muốn tách luồng.

Nó giải quyết vấn đề gì trong luồng xác minh?

Luồng xác minh địa chỉ thư điện tử có một đặc điểm khiến nó khó kiểm thử tự động: kết quả không nằm trong phản hồi của máy chủ mà nằm trong một hộp thư khác. Máy chủ chỉ trả về thông báo rằng thư đã được gửi, còn liên kết xác minh hoặc mã dùng một lần thì chỉ có trong nội dung thư. Nếu bộ kiểm thử không đọc được thư đó, nó không thể đi tiếp.

Hộp thư tạm thời giải quyết phần đầu của vấn đề bằng cách cho bạn một địa chỉ nhận được thư trong môi trường thử. Bạn đăng ký bằng địa chỉ đó, chờ thư tới, đọc liên kết xác minh hoặc mã, rồi đưa giá trị đó trở lại luồng. Đây là cách nhanh nhất để thử một luồng trọn vẹn trong môi trường thử mà không cần dựng hạ tầng thư riêng.

Phần thứ hai của vấn đề là thời gian. Thư không tới ngay lập tức, và độ trễ có thể dao động từ vài giây tới vài phút tùy dịch vụ gửi và tùy chính sách chống thư rác. Bộ kiểm thử cần chờ có giới hạn và có thử lại, chứ không nên giả định thư tới trong một khoảng cố định. Bài mã dùng một lần trong kiểm thử đầu cuối bàn về cách xử lý độ trễ này mà không làm bộ kiểm thử trở nên chậm chạp.

Phần thứ ba là nội dung thư. Thư xác minh thường chứa liên kết có tham số dài, có thể bị xuống dòng trong bản văn thuần, và có thể có cả phiên bản văn bản thuần lẫn phiên bản nhiều định dạng. Bộ phân tích của bạn cần xử lý cả hai phiên bản và cần biết rằng một liên kết bị ngắt dòng không phải là một liên kết hỏng.

Vì sao nhiều trang chặn miền dùng một lần?

Nhiều dịch vụ chặn những miền hộp thư tạm thời công khai vì chúng bị lạm dụng để tạo hàng loạt tài khoản, gửi thư rác, hoặc thử nghiệm các hành vi mà điều khoản sử dụng không cho phép. Đây là một quyết định hợp lý từ phía họ, và nó tồn tại vì lý do vận hành chứ không phải để gây khó dễ cho người kiểm thử.

Hệ quả với công việc của bạn là rất thực tế. Nếu bạn dùng một miền công khai để kiểm thử luồng đăng ký, chính sách chặn của hệ thống bạn đang thử có thể khiến bộ kiểm thử thất bại ngẫu nhiên. Tệ hơn, danh sách miền bị chặn thay đổi theo thời gian, nên một bộ kiểm thử chạy tốt hôm nay có thể hỏng vào tuần sau mà không ai sửa gì trong mã nguồn. Bài vì sao các trang chặn miền dùng một lần đi sâu vào các dấu hiệu mà hệ thống chống lạm dụng thường dùng để nhận diện.

Có một điểm tinh tế mà người viết kiểm thử hay quên: việc bị chặn có thể xảy ra ở hai tầng khác nhau. Tầng thứ nhất là tầng biểu mẫu, nơi hệ thống từ chối ngay khi thấy miền nằm trong danh sách đen. Tầng thứ hai là tầng gửi thư, nơi hệ thống chấp nhận địa chỉ nhưng máy chủ thư của bạn từ chối nhận, hoặc thư bị lọc. Hai tầng này cần hai ca kiểm thử riêng, vì cách xử lý và thông báo lỗi hoàn toàn khác nhau.

Điều đáng làm là biến sự bất ổn đó thành một ca kiểm thử có chủ đích. Hãy kiểm tra xem hệ thống của bạn phản ứng thế nào khi gặp một miền bị chặn: nó có báo lỗi rõ ràng cho người dùng hay im lặng thất bại. Đây là một phép kiểm thử hữu ích, và nó chỉ thực hiện được nếu bạn phân biệt rõ giữa ca dùng miền công khai và ca dùng miền riêng.

Miền riêng hay miền công khai, chọn thế nào?

Miền công khai có ưu điểm là dùng được ngay, không cần cấu hình bản ghi thư, không cần quản lý chứng chỉ và không cần ai đó trong nhóm có quyền quản trị tên miền. Với một buổi thử tay kéo dài vài phút, đây thường là lựa chọn hợp lý nhất vì chi phí thiết lập gần như bằng không.

Miền riêng có ưu điểm là ổn định. Khi bạn kiểm soát miền, bạn kiểm soát được danh sách chặn, thời gian lưu thư, tốc độ nhận thư và quyền riêng tư của nội dung. Bạn cũng có thể đặt quy tắc riêng cho từng môi trường, chẳng hạn mọi địa chỉ trong môi trường thử đều kết thúc bằng một hậu tố cố định để bạn lọc ra dễ dàng. Với bộ kiểm thử tự động chạy hằng ngày, sự ổn định này thường quan trọng hơn chi phí thiết lập ban đầu.

Một lựa chọn trung gian là dùng miền riêng cho bộ kiểm thử tự động và dùng hộp thư công khai cho việc thử tay. Cách này cho phép nhóm giữ tốc độ trong công việc hằng ngày mà vẫn có một đường ống ổn định cho những phép kiểm thử phải chạy đều đặn. Nếu ngân sách bằng không, bài thư điện tử tạm thời miễn phí bàn về cách thiết kế đường ống kiểm thử đủ tin cậy mà không phải trả tiền.

Khi nào không nên dùng hộp thư tạm thời?

Không nên dùng khi bạn đang thử trên môi trường thật hoặc trên dữ liệu thật. Một hộp thư tạm thời không có chủ sở hữu xác định, nên nếu nó vô tình gắn với một tài khoản thật, bạn sẽ không có cách nào giành lại quyền truy cập và cũng không biết ai khác đang đọc được thư trong hộp thư đó.

Không nên dùng khi có yêu cầu lưu trữ hoặc kiểm toán. Nhiều ngành bắt buộc phải giữ lại bằng chứng về thư đã gửi và đã nhận trong một khoảng thời gian nhất định, và một hộp thư tự hủy sau vài giờ không đáp ứng được yêu cầu đó. Trong những trường hợp này, hộp thư thuộc miền của tổ chức bạn mới là lựa chọn đúng.

Không nên dùng để vượt qua những giới hạn mà một dịch vụ đặt ra, chẳng hạn tạo nhiều tài khoản miễn phí để dùng quá hạn mức, hoặc để lại đánh giá, bình chọn nhiều lần. Đây không phải mục đích của công cụ kiểm thử, và những hành vi đó vi phạm điều khoản sử dụng của bên thứ ba chứ không phải một kỹ thuật kiểm thử.

Cuối cùng, không nên dùng hộp thư tạm thời để nhận những thư có chứa thông tin nhạy cảm, kể cả trong môi trường thử. Nếu hệ thống của bạn vô tình gửi kèm một mã truy cập, một liên kết đặt lại mật khẩu, hay một tệp nội bộ, nội dung đó sẽ nằm trên hạ tầng mà bạn không kiểm soát. Hãy dùng miền riêng cho những luồng như vậy.

Cần chuẩn bị những ca kiểm thử nào cho luồng thư xác minh?

Ca đầu tiên là ca đường đi vui vẻ: đăng ký bằng một địa chỉ mới, nhận thư, trích liên kết xác minh, mở liên kết và kiểm tra rằng tài khoản đã được kích hoạt. Ca này nghe có vẻ tầm thường nhưng nó là ca duy nhất chứng minh rằng toàn bộ chuỗi hoạt động, từ máy chủ gửi tới bộ phân tích của bạn.

Ca thứ hai là ca mã hết hạn. Hãy để mã dùng một lần hết hạn rồi thử nhập lại, và kiểm tra xem hệ thống có phân biệt được giữa mã sai và mã hết hạn hay không. Đây là chỗ nhiều hệ thống trả về cùng một thông báo chung, khiến người dùng không biết mình nên làm gì tiếp.

Ca thứ ba là ca dùng lại mã hoặc dùng lại liên kết. Một liên kết xác minh đã được dùng có nên còn hiệu lực hay không, và nếu còn thì trong bao lâu. Hãy chốt kỳ vọng này trước khi viết phép kiểm tra, nếu không bạn sẽ kiểm thử hành vi hiện tại của hệ thống thay vì hành vi mà bạn mong muốn.

Ca thứ tư là ca thư tới muộn hoặc không tới. Hãy thử với một địa chỉ không tồn tại để xem hệ thống phản ứng ra sao, và thử với một khoảng chờ ngắn hơn độ trễ thực tế để xem bộ kiểm thử có báo lỗi rõ ràng hay treo. Bài danh sách kiểm tra thư giao dịch mở rộng danh sách này cho các loại thư khác ngoài thư xác minh.

Bước tiếp theo

Hãy mở trình tạo thư tạm thời, tạo một địa chỉ, rồi dùng nó để đăng ký trên môi trường thử của bạn và xem thư có tới hay không. Sau đó ghi lại độ trễ bạn quan sát được và đưa con số đó vào cấu hình chờ của bộ kiểm thử, thay vì để mỗi lần chạy phải đoán.

Toàn bộ địa chỉ do trang này sinh ra là dữ liệu kiểm thử tổng hợp: chúng đúng cú pháp và dùng được trong môi trường thử, nhưng không thuộc về người nào, không nhận thư của người thật, và không nên dùng cho bất kỳ tài khoản thật hay luồng nghiệp vụ thật nào.

Đọc tiếp

Công cụ phổ biến và bài hướng dẫn sử dụng