thảo luận [automation test] Xin góp ý về thiết kế hệ thống với số lượng test case trên 10.000.

Dùng profile chrome bật sẵn email mà verify. Chứ pass qua 2FA của gmail hơi khó. Hoặc cho test với những domain email free như yopmail trước
À khum . Ý em là chỉ cần nhập tk và mk mail là được ấy ạ . Chứ verify mail của em là sau khi vào mail check xem đã có mail gửi về chưa hay không thui ạ
 
Dùng profile chrome bật sẵn email mà verify. Chứ pass qua 2FA của gmail hơi khó. Hoặc cho test với những domain email free như yopmail trước
1702689188219.png

Em chỉ mới nhập được gmail mà nó đã chặn như vậy rùi , còn chưa cho nhập mật khẩu ấy ạ
 
À khum . Ý em là chỉ cần nhập tk và mk mail là được ấy ạ . Chứ verify mail của em là sau khi vào mail check xem đã có mail gửi về chưa hay không thui ạ
Chính là cái khó đấy :)) tốt nhất dùng mail domain mà test case login mail.
Chứ test với gmail dễ ăn block lắm
 
Chính là cái khó đấy :)) tốt nhất dùng mail domain mà test case login mail.
Chứ test với gmail dễ ăn block lắm
Ví dụ xài cookie để đăng nhập mail thì có "hợp lý " không nếu như nó được sử dụng vào production của cty ạ ?
 
Ví dụ xài cookie để đăng nhập mail thì có "hợp lý " không nếu như nó được sử dụng vào production của cty ạ ?
Cái này cũng là 1 trong mấy risk trong auto cần báo lên trên hoặc aware được từ đầu. Vì auto login cho gmail 2FA là 1 hạn chế. Vậy nên thay vì login từng bước email, thì có thể thay bằng xài cookie đăng nhập sẵn hoặc sử dụng profile chrome đã login sẵn email, lúc open là tự vào thẳng inbox email chứ ko cần login username/pass xong 2FA lại từ đầu. Nếu mục đích của bạn là chỉ cần verify nội dung email nhận đến, thì thay vì sử dụng gmail, bạn có thể sử dụng các email khác ko có 2FA, hoặc các free email như yopmail để test trước. Mà mình nghĩ các công ty sẽ có email domain riêng chứ ai lại dùng gmail cho production nhỉ?
 
hỏi ngu chứ ông thớt hỏi cái này để làm gì vậy ?
  • Về structure của test project
  • Hay là thiết kế để khi run cục test này (CI chẳng hạn) thì nó có khả năng chạy 1 phát 10k test case mà không die?
 
Mọi người cho em hỏi , hiện tại trên cty em đang có task verify mail mà cần phải đăng nhập mail từ đầu . Em sử dụng Selenium + Java để viết nhưng có vẻ thằng Chrome không cho phần mềm automation điều khiển . Có cách nào không ạ View attachment 2238139
Mấy cái official email của Gmail có 2FA thì đâu thể bypass với automation tool dc bạn. Những cái risk như 2FA hoặc Captcha phải báo cho cty ngay từ đầu chứ.
 
Mọi người cho em hỏi , hiện tại trên cty em đang có task verify mail mà cần phải đăng nhập mail từ đầu . Em sử dụng Selenium + Java để viết nhưng có vẻ thằng Chrome không cho phần mềm automation điều khiển . Có cách nào không ạ View attachment 2238139
Mình cũng có implement một test case liên quan đến gmail là đổi mật khẩu. Cách làm của mình là dùng googleapis để xử lý các tác vụ về đọc mail. Còn google cloud để xử lý việc xác thực.
 
Mọi người cho em hỏi , hiện tại trên cty em đang có task verify mail mà cần phải đăng nhập mail từ đầu . Em sử dụng Selenium + Java để viết nhưng có vẻ thằng Chrome không cho phần mềm automation điều khiển . Có cách nào không ạ View attachment 2238139
Bạn xài những cái disposable mail service xem sao, ko nhất thiết phải xài gmail mà nhỉ?
 
Quay về thớt chính thì việc convert 6k5 test cases thì chạy CI ko biết cty có chịu nổi tiền ko :LOL:
Như mọi người đã bàn ở trên thì nên đổi lại strategy theo Test Pyramid, review lại toàn bộ test case manual để đẩy xuống những level thấp hơn như unit test, API, integration. Ko rõ scope feature của bên thớt khủng cỡ nào nhưng 6k5 test case thì ko rõ 10 QC có bao nhiêu thời gian để run hết mỗi lần có release?
Mục đích chính để giảm tải regression thì mình nghĩ nên lựa chọn những test framework dễ làm dễ học mà lại có thể làm đc nhiều như Cypress hay Playwright.
 
Quay về thớt chính thì việc convert 6k5 test cases thì chạy CI ko biết cty có chịu nổi tiền ko :LOL:
Như mọi người đã bàn ở trên thì nên đổi lại strategy theo Test Pyramid, review lại toàn bộ test case manual để đẩy xuống những level thấp hơn như unit test, API, integration. Ko rõ scope feature của bên thớt khủng cỡ nào nhưng 6k5 test case thì ko rõ 10 QC có bao nhiêu thời gian để run hết mỗi lần có release?
Mục đích chính để giảm tải regression thì mình nghĩ nên lựa chọn những test framework dễ làm dễ học mà lại có thể làm đc nhiều như Cypress hay Playwright.
Hiện tại bên dự án chưa có triển khai chạy test ở server. Hiện đang chạy test case trên 1 máy pc. Rồi report kết quả lên slack. QC có 1 check list để theo dõi.

Về phần regression test thì mình mới theo dõi release ở spint này thì tc cỡ 1k960 case manual.
Screenshot 2023-12-17 at 10.00.25.png

Đã viết được 1195 cases auto.
Screenshot 2023-12-17 at 10.13.33.png

Bé QC report là move được 139 case manual sang auto.
Screenshot 2023-12-17 at 10.16.19.png

Tổng hợp lại sau khi viết hơn 1k test auto cho 1 tính năng của dự án, thì mình có mấy cái rút ra:
  • Test case manual chung chung, không có đầu vào đầu ra cụ thể. Nên 1 case manual có rất nhiều case auto. (Do mình mới join dự án nên phần này mình nhờ bé QC tạo test case auto, mình chỉ implement).
  • Test case của auto sẽ kiểu bị lặp lại khá nhiều. Chỉ khác nhau phần tham số. Để tránh việc lặp code quá nhiều thì mình thường viết hàm để gọi lại. Các tham số thuộc về test case thì xử lý ở các test case.
  • Dữ liệu sau thời gian chạy test sẽ nhiều lên. Nên các test case dạng sum dữ liệu thường sẽ bị timeout. Mình cũng chưa có giải pháp triệt để chỉ có vài cách xử lý như:
  • Dạng test case add record, nếu có tính năng delete record, thì sau khi add record, hãy gọi hàm delete record mới thêm vào.
  • Dạng test case add record, không có tính năng delete record, thì mình chưa có giải pháp.
  • Nâng thời gian thời gian timeout của test case, đây cũng k phải là giải pháp tối ưu.

Về phần đổi lại strategy test thì mình thấy chắc đợi plan làm lại - chuyển từ SSR => CSR (mình đã gởi est nhưng chưa thấy phản hồi thời gian start) - mới có khả năng áp dụng. Giờ mọi người đang tập trung chuyển đổi bộ test case manual regression sang auto.
 
hỏi ngu chứ ông thớt hỏi cái này để làm gì vậy ?
  • Về structure của test project
  • Hay là thiết kế để khi run cục test này (CI chẳng hạn) thì nó có khả năng chạy 1 phát 10k test case mà không die?
Đúng rồi, như bạn nói á. Do chưa có kinh nghiệm về test cũng như design hệ thống nên mang lên nhờ mọi người tư vấn giúp.
 
Hiện tại bên dự án chưa có triển khai chạy test ở server. Hiện đang chạy test case trên 1 máy pc. Rồi report kết quả lên slack. QC có 1 check list để theo dõi.

Về phần regression test thì mình mới theo dõi release ở spint này thì tc cỡ 1k960 case manual.
View attachment 2240052
Đã viết được 1195 cases auto.
View attachment 2240062
Bé QC report là move được 139 case manual sang auto.
View attachment 2240066
Tổng hợp lại sau khi viết hơn 1k test auto cho 1 tính năng của dự án, thì mình có mấy cái rút ra:
  • Test case manual chung chung, không có đầu vào đầu ra cụ thể. Nên 1 case manual có rất nhiều case auto. (Do mình mới join dự án nên phần này mình nhờ bé QC tạo test case auto, mình chỉ implement).
  • Test case của auto sẽ kiểu bị lặp lại khá nhiều. Chỉ khác nhau phần tham số. Để tránh việc lặp code quá nhiều thì mình thường viết hàm để gọi lại. Các tham số thuộc về test case thì xử lý ở các test case.
  • Dữ liệu sau thời gian chạy test sẽ nhiều lên. Nên các test case dạng sum dữ liệu thường sẽ bị timeout. Mình cũng chưa có giải pháp triệt để chỉ có vài cách xử lý như:
  • Dạng test case add record, nếu có tính năng delete record, thì sau khi add record, hãy gọi hàm delete record mới thêm vào.
  • Dạng test case add record, không có tính năng delete record, thì mình chưa có giải pháp.
  • Nâng thời gian thời gian timeout của test case, đây cũng k phải là giải pháp tối ưu.

Về phần đổi lại strategy test thì mình thấy chắc đợi plan làm lại - chuyển từ SSR => CSR (mình đã gởi est nhưng chưa thấy phản hồi thời gian start) - mới có khả năng áp dụng. Giờ mọi người đang tập trung chuyển đổi bộ test case manual regression sang auto.
Vãi thật hơn 1k test case mà run khoảng 24phút :LOL: Is that true bro? 😂
 
Vãi thật hơn 1k test case mà run khoảng 24phút :LOL: Is that true bro? 😂
Chạy với mode parallel á bác. Với lại mình đang đang thử setting chrome headless thì thấy chạy nhanh hơn. Nhưng đang fail ở case download file. Chưa fix được. =((
 
Bác nào hỗ trợ em ca này với ạ . em đang viết selenium + java mà gặp lỗi chưa biết fix thế nào :

Actions actions1 = new Actions(driver);
actions1.moveByOffset(600, 400).click().perform();
// vài thao tác gì đó
Actions actions2 = new Actions(driver);
actions2.moveByOffset(350, 400).click().perform();

Thì em gặp lỗi :
MoveTargetOutOfBoundsException: move target out of bounds

Mặc dù khi em thử tách 2 action kia để chạy từng cái thì vẫn nằm trong vùng khả dụng của nó . Không biết là giữa 2 action có phải viết thêm cái gì không ạ ?
 
Bác nào hỗ trợ em ca này với ạ . em đang viết selenium + java mà gặp lỗi chưa biết fix thế nào :

Actions actions1 = new Actions(driver);
actions1.moveByOffset(600, 400).click().perform();
// vài thao tác gì đó
Actions actions2 = new Actions(driver);
actions2.moveByOffset(350, 400).click().perform();

Thì em gặp lỗi :
MoveTargetOutOfBoundsException: move target out of bounds

Mặc dù khi em thử tách 2 action kia để chạy từng cái thì vẫn nằm trong vùng khả dụng của nó . Không biết là giữa 2 action có phải viết thêm cái gì không ạ ?
MoveByOffset nó move lũy tiến nhé. Ví dụ
Lần 1 move: từ 0,0 tới 600, 400
Lần 2 nó sẽ move (600 + 350), (400 + 400) nghĩa là 950, 800. Hình như do cái driver nó vẫn giữ vị trí chuột.

Do nó nên viết script move bằng javascript (hỏi AI)
 
MoveByOffset nó move lũy tiến nhé. Ví dụ
Lần 1 move: từ 0,0 tới 600, 400
Lần 2 nó sẽ move (600 + 350), (400 + 400) nghĩa là 950, 800. Hình như do cái driver nó vẫn giữ vị trí chuột.

Do nó nên viết script move bằng javascript (hỏi AI)
Thanks bác nhiều ạ
 
Back
Top