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.
Thắc mắc về parameter "Data Table"
Forum rules
Thảo luận về phần mềm Quick Test Pro QTP
Thảo luận về phần mềm Quick Test Pro QTP
-
- Fresher Tester
- Posts: 23
- Joined: Mon 21 May, 2012 10:54 pm
- Contact:
Thắc mắc về parameter "Data Table"
You do not have the required permissions to view the files attached to this post.
-
- Fresher Tester
- Posts: 23
- Joined: Mon 21 May, 2012 10:54 pm
- Contact:
Re: Thắc mắc về parameter "Data Table"
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.
Mong mọi người giúp đỡ.
Thanks sincerely.
-
- Fresher Tester
- Posts: 36
- Joined: Thu 27 Oct, 2011 10:50 pm
- Contact:
Re: Thắc mắc về parameter "Data Table"
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.
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.
-
- Fresher Tester
- Posts: 23
- Joined: Mon 21 May, 2012 10:54 pm
- Contact:
Re: Thắc mắc về parameter "Data Table"
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,
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,
-
- Fresher Tester
- Posts: 36
- Joined: Thu 27 Oct, 2011 10:50 pm
- Contact:
Re: Thắc mắc về parameter "Data Table"
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.
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.
-
- Fresher Tester
- Posts: 23
- Joined: Mon 21 May, 2012 10:54 pm
- Contact:
Re: Thắc mắc về parameter "Data Table"
Hi luasaigon,
Cám ơn bạn rất rất nhiều đã nhiệt tình giúp đỡ .
Scripts của mình đã chạy smothly đúng theo yêu cầu.
Cám ơn bạn rất rất nhiều đã nhiệt tình giúp đỡ .
Scripts của mình đã chạy smothly đúng theo yêu cầu.