Thắc mắc về parameter "Data Table" • testingvn.com


Thông báo về việc đăng ký mới thành viên: Sau khi đăng ký thành viên xong, các bạn vui lòng Thông báo cho Quản Trị Viên theo link này
để Quản Trị Viên sẽ kích hoạt tài khoản cho các bạn nhé. Xin lỗi vì sự bất tiện này.

Thắc mắc về parameter "Data Table"

Thảo luận về phần mềm Quick Test Pro QTP
Nội qui chuyên mục
Thảo luận về phần mềm Quick Test Pro QTP

Thắc mắc về parameter "Data Table"

Gửi bàigửi bởi quangdovan8x » T.Sáu 23 Tháng 1, 2015 3:20 pm

Chào các bạn,
Mình mới tìm hiểu về QTP, đến phần parameter thì mình hok hiểu cơ chế làm việc của item "Data Table" cho lắm.
Đây là scenario của mình:

Enter nhiều item trên "Add A New Item" dialog dựa theo data trong Data Table (hình đính kèm).
Cuối cùng, click 'Process' button.

Expected result: Chỉ duy nhất item cuối cùng trong 'Data Table' được add.

Mong mọi người giúp đỡ giải đáp giúp mình.

Thanks,

P/s: mình cũng có thắc mắc về "Regular Expression" trong QTP, chẳng hạn mình có câu lệnh

VbWindow("frmABTInventory").VbComboBox("cboProducts").Select "Nails"

Mình sẽ dùng "Regular Expression" như thế nào để có thể thay thế "Nails" chỉ bằng "N" thôi.

Data Table.JPG


Inventory.rar
Vui lòng đăng nhập để thấy link download.
quangdovan8x
 
Bài viết: 23
Ngày tham gia: T.Hai 21 Tháng 5, 2012 10:54 pm

Re: Thắc mắc về parameter "Data Table"

Gửi bàigửi bởi quangdovan8x » T.Năm 29 Tháng 1, 2015 10:01 am

Mình chạy scripts này thì QTP gộp luôn cả việc "click Process button" vào work flow của Data Table, mà đoạn này mình không khai báo Data Table.
Mong mọi người giúp đỡ.
Thanks sincerely.
quangdovan8x
 
Bài viết: 23
Ngày tham gia: T.Hai 21 Tháng 5, 2012 10:54 pm

Re: Thắc mắc về parameter "Data Table"

Gửi bàigửi bởi luasaigon » T.Năm 29 Tháng 1, 2015 11:06 pm

Hi bạn,

Nếu bạn chỉ muốn sử dụng row cuối cùng trong datatable thì bạn thử cách này xem sao (thêm vào trước script của bạn):
- Get number round của datatable lưu vào 1 biến
- set current row của datatable bằng biến vừa lưu
- sau đó đến script của bạn

Code có thể như vậy (bạn có thể sửa 1 chút cho hợp với script của bạn ^^ ):
row_count = DataTable.GetRowCount
SetCurrentRow(row_count)

P/s: nếu code có sai bạn cứ feedback lại để mình kiếm máy nào có cài QTP check lại cho nhé.
Thân.
luasaigon
 
Bài viết: 36
Ngày tham gia: T.Năm 27 Tháng 10, 2011 10:50 pm

Re: Thắc mắc về parameter "Data Table"

Gửi bàigửi bởi quangdovan8x » T.Sáu 30 Tháng 1, 2015 9:48 am

Hi luasaigon,
Cám ơn bạn đã quan tâm và giải đáp giúp mình.

Có thể do mình chưa nói hết ý của mình nên có chút hiểu lầm.
Ý tưởng của mình là QTP sẽ add tất cả data trong Table (add tất cả 4 rows theo ví dụ trên của mình).
Sau khi add hết data thì mới click "Process" button.
Cụ thể số lượt chạy scripts sẽ là:

-> add data theo dòng 1 trong Data Table
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtNumber").Set DataTable("Number", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtName").Set DataTable("Name", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtDescription").Set DataTable("Des", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtQuantity").Set DataTable("Qua", dtGlobalSheet)

-> add data theo dòng 2 trong Data Table
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtNumber").Set DataTable("Number", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtName").Set DataTable("Name", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtDescription").Set DataTable("Des", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtQuantity").Set DataTable("Qua", dtGlobalSheet)

-> add data theo dòng 3 trong Data Table
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtNumber").Set DataTable("Number", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtName").Set DataTable("Name", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtDescription").Set DataTable("Des", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtQuantity").Set DataTable("Qua", dtGlobalSheet)

-> add data theo dòng 4 trong Data Table
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtNumber").Set DataTable("Number", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtName").Set DataTable("Name", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtDescription").Set DataTable("Des", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtQuantity").Set DataTable("Qua", dtGlobalSheet)

->Sau khi add hết 4 dòng trong Data Table thì click 'Process' button
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbButton("Process").Click

Mong bạn giúp đỡ.

Thanks,
quangdovan8x
 
Bài viết: 23
Ngày tham gia: T.Hai 21 Tháng 5, 2012 10:54 pm

Re: Thắc mắc về parameter "Data Table"

Gửi bàigửi bởi luasaigon » T.Sáu 30 Tháng 1, 2015 4:01 pm

Vậy bạn thêm if...else để kiểm tra điều kiện cho cái action "click":

row_count = DataTable.GetRowCount
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtNumber").Set DataTable("Number", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtName").Set DataTable("Name", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtDescription").Set DataTable("Des", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtQuantity").Set DataTable("Qua", dtGlobalSheet)
if datatable.GetCurrentRow = row_count then
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbButton("Process").Click
end if

thân.
luasaigon
 
Bài viết: 36
Ngày tham gia: T.Năm 27 Tháng 10, 2011 10:50 pm

Re: Thắc mắc về parameter "Data Table"

Gửi bàigửi bởi quangdovan8x » T.Hai 02 Tháng 2, 2015 1:01 pm

Hi luasaigon,

Cám ơn bạn rất rất nhiều đã nhiệt tình giúp đỡ :D.
Scripts của mình đã chạy smothly đúng theo yêu cầu.
quangdovan8x
 
Bài viết: 23
Ngày tham gia: T.Hai 21 Tháng 5, 2012 10:54 pm


Quay về Quick Test Pro (QTP)

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách.