QTP自伝の記述的プログラミング
32438 ワード
記述的プログラミング、すなわち、オブジェクトを記述的な言語で位置決めし、事前にオブジェクトをオブジェクトライブラリに追加する必要はありません.次に、記述的なプログラミングの使用方法について説明します.オブジェクトライブラリプログラミングのWebページを引き続き使用します.
記述的プログラミングを用いた2つの方法直接説明 オブジェクト(属性名:=属性値、属性名:=属性値...)
この方法はとてもイメージがよくて覚えやすいです.例えば、人を探しに行くなら、張三と呼んでください.上の公式ではそうです.
人(「名前:=張三」)
張三という人が複数いれば、もっと具体的に特徴を説明することができます.
人(「名前:=張三」、「性別:=男」、「身長:=175 CM」…)
張三のこれらの特殊なことを言うことで、最終的に私たちは彼を見つけることができます.次は私たちがオブジェクトライブラリプログラミングで使用しているコードです.
記述的なプログラミングで同じ効果が得られるので、ユーザー名にtestが入力されているのではないでしょうか.
注意、個人紹介リッチテキストには2つの属性記述が使用されており、Webソース(ソースが見えないか見えないかSpyツールでオブジェクト属性を表示できます)を使用すると、name属性がなく、ユーザー名とメールボックスのclass属性がeditであることがわかります.位置を特定するには、html tagを選択する一意性の属性を追加する必要があります.
記述プログラミングでは、上記のコードWebEdit(「class:=edit」,「html tag:=TEXTAREA」)など、記述されたオブジェクトの具体的な用途をコードから直接見ることができない場合がありますが、classとhtml tagの属性で記述されているオブジェクトは分かりませんが、オブジェクトライブラリでプログラミングされているコードWebEdit(「個人紹介」)は、これは個人紹介入力ボックスを設定する値であることを明確に指摘し,これも記述的プログラミングが不足しているところであろう. Descriptionオブジェクトメソッド ダイレクトコード
このように書くのはよさそうですが、同じオブジェクトがたくさんあると面倒になります.100個のWebEditが100個のdescriptionオブジェクトを設定しますか?コードを改善するには、次のようにします.
2つの方法はすでに紹介済みで、1つ目の方法は一般的なテスト環境に適用され、2つ目の方法はフレームワークベースのテストに適用され、そのコードの多重性が高いため、具体的な違いは自分で体得することができます.次に、オブジェクトライブラリでプログラミングされたコードを2つの記述的なプログラミング方式で書き換える.
どのように取捨選択するかオブジェクトライブラリプログラミング 1.オブジェクトのプロパティが変更された場合(オブジェクトnameの変更など)、スクリプトではこのオブジェクト(10回、100回)を大量に参照し、オブジェクトライブラリ内のオブジェクトのプロパティを変更するだけでよい.記述的なプログラミングでは、関連するすべてのコードを手動で変更する必要があり、効率が低い.
2.オブジェクトドラッグ、F 7などで素早くコードを書き、自動的に生成することができ、間違えにくい.記述的プログラミング 1.膨大なオブジェクトライブラリを維持する必要はありません.
2.オブジェクトライブラリのプログラミングが完了できない機能(オブジェクトが認識できない場合)
記述的プログラミングとオブジェクトライブラリプログラミングにはそれぞれメリットとデメリットがあり,誰が良いか悪いかは言えず,適切な時に適切な方法を採用することこそ正理である.
最良の方法は,オブジェクトが認識できるときはオブジェクトライブラリでプログラミングし,認識できないときは記述的にプログラミングすることである.
記述的プログラミングを用いた2つの方法
この方法はとてもイメージがよくて覚えやすいです.例えば、人を探しに行くなら、張三と呼んでください.上の公式ではそうです.
人(「名前:=張三」)
張三という人が複数いれば、もっと具体的に特徴を説明することができます.
人(「名前:=張三」、「性別:=男」、「身長:=175 CM」…)
張三のこれらの特殊なことを言うことで、最終的に私たちは彼を見つけることができます.次は私たちがオブジェクトライブラリプログラミングで使用しているコードです.
Browser("web ").Page("web ").WebEdit(" ").Set "test"
Browser("web ").Page("web ").WebEdit(" ").Set "[email protected]"
Browser("web ").Page("web ").WebEdit(" ").Set "haha"
記述的なプログラミングで同じ効果が得られるので、ユーザー名にtestが入力されているのではないでしょうか.
'
Browser("micClass:=Browser").Page("micClass:=Page").WebEdit("name:=username").Set "test"
Browser("micClass:=Browser").Page("micClass:=Page").WebEdit("name:=mail").Set "[email protected]"
Browser("micClass:=Browser").Page("micClass:=Page").WebEdit("class:=edit","html tag:=TEXTAREA").Set "haha"
注意、個人紹介リッチテキストには2つの属性記述が使用されており、Webソース(ソースが見えないか見えないかSpyツールでオブジェクト属性を表示できます)を使用すると、name属性がなく、ユーザー名とメールボックスのclass属性がeditであることがわかります.位置を特定するには、html tagを選択する一意性の属性を追加する必要があります.
//
<div class="content">
<span> </span><input type="text" name="username" class="edit">
</div>
<div class="content">
<span> </span><input type="mail" name="mail" class="edit">
</div>
<div class="content">
<span> </span><textarea rows="5" cols="20" class="edit"></textarea>
</div>
記述プログラミングでは、上記のコードWebEdit(「class:=edit」,「html tag:=TEXTAREA」)など、記述されたオブジェクトの具体的な用途をコードから直接見ることができない場合がありますが、classとhtml tagの属性で記述されているオブジェクトは分かりませんが、オブジェクトライブラリでプログラミングされているコードWebEdit(「個人紹介」)は、これは個人紹介入力ボックスを設定する値であることを明確に指摘し,これも記述的プログラミングが不足しているところであろう.
1 ' description
2 ' description
3 Set obj_browser=description.Create()
4 Set obj_page=description.Create()
5 Set obj_webedit_username=description.Create()
6 Set obj_webedit_mail=description.Create()
7 Set obj_webedit_textarea=description.Create()
8 '
9 obj_browser("micClass").value="Browser"
10 obj_page("micClass").value="Page"
11 obj_webedit_username("name").value="username"
12 obj_webedit_mail("name").value="mail"
13 obj_webedit_textarea("html tag").value="TEXTAREA"
14
15 Browser(obj_browser).Page(obj_page).WebEdit(obj_webedit_username).Set "test"
16 Browser(obj_browser).Page(obj_page).WebEdit(obj_webedit_mail).Set "[email protected]"
17 Browser(obj_browser).Page(obj_page).WebEdit(obj_webedit_textarea).Set "haha"
18
19 '
20 Set obj_browser=nothing
21 Set obj_page=nothing
22 Set obj_webedit_username=nothing
23 Set obj_webedit_mail=nothing
24 Set obj_webedit_textarea=nothing
このように書くのはよさそうですが、同じオブジェクトがたくさんあると面倒になります.100個のWebEditが100個のdescriptionオブジェクトを設定しますか?コードを改善するには、次のようにします.
1 ' description
2 ' description
3 Set obj_browser=description.Create()
4 Set obj_page=description.Create()
5 Set obj_webedit=description.Create()
6
7 '
8 obj_browser("micClass").value="Browser"
9 obj_page("micClass").value="Page"
10 obj_webedit("micClass").value="WebEdit"
11
12 Set obj_webedits=Browser(obj_browser).Page(obj_page).ChildObjects(obj_webedit)
13
14 obj_webedits.item(0).set "test"
15 obj_webedits.item(1).set "[email protected]"
16 obj_webedits.item(2).set "haha"
17
18 '
19 Set obj_browser=nothing
20 Set obj_page=nothing
21 Set obj_webedit=nothing
22 Set obj_webedits=nothing
2つの方法はすでに紹介済みで、1つ目の方法は一般的なテスト環境に適用され、2つ目の方法はフレームワークベースのテストに適用され、そのコードの多重性が高いため、具体的な違いは自分で体得することができます.次に、オブジェクトライブラリでプログラミングされたコードを2つの記述的なプログラミング方式で書き換える.
1 ' description
2 ' description
3 Set obj_browser=description.Create()
4 Set obj_page=description.Create()
5 Set obj_webedit=description.Create()
6 Set obj_weblist=description.Create()
7 Set obj_webcheckbox=description.Create()
8 Set obj_webradiogroup=description.Create()
9 Set obj_webbutton=description.Create()
10 Set obj_webtabe=description.Create()
11
12 '
13 obj_browser("micClass").value="Browser"
14 obj_page("micClass").value="Page"
15 obj_webedit("micClass").value="WebEdit"
16 obj_weblist("micClass").value="WebList"
17 obj_webcheckbox("micClass").value="WebCheckBox"
18 obj_webradiogroup("micClass").value="WebRadioGroup"
19 obj_webbutton("micClass").value="WebButton"
20 obj_webtabe("micClass").value="WebTable"
21
22 ' WebEdit
23 Set obj_webedits=Browser(obj_browser).Page(obj_page).ChildObjects(obj_webedit)
24 obj_webedits.item(0).set "test"
25 obj_webedits.item(1).set "[email protected]"
26 obj_webedits.item(2).set "haha"
27
28 Browser(obj_browser).Page(obj_page).WebList(obj_weblist).Select "java"
29
30 ' WebCheckBox
31 Set obj_webcheckboxs=Browser(obj_browser).Page(obj_page).ChildObjects(obj_webcheckbox)
32 For i=0 to 1
33 obj_webcheckboxs.item(i).set "ON"
34 Next
35
36 Browser(obj_browser).Page(obj_page).WebRadioGroup(obj_webradiogroup).Select " "
37 Browser(obj_browser).Page(obj_page).WebButton(obj_webbutton).Click
38
39 ' WebTable
40 username=Browser(obj_browser).Page(obj_page).WebTable(obj_webtabe).GetCellData(2,1)
41 mail=Browser(obj_browser).Page(obj_page).WebTable(obj_webtabe).GetCellData(2,2)
42 sex=Browser(obj_browser).Page(obj_page).WebTable(obj_webtabe).GetCellData(2,3)
43
44 If username="test" and mail="[email protected]" and sex=" " Then
45 msgbox "OK"
46 End If
47 '
48 Set obj_browser=nothing
49 Set obj_page=nothing
50 Set obj_webedit=nothing
51 Set obj_webedits=nothing
52 Set obj_weblist=nothing
53 Set obj_webcheckbox=nothing
54 Set obj_webradiogroup=nothing
55 Set obj_webbutton=nothing
56 Set obj_webcheckboxs=nothing
57 Set obj_webtabe=nothing
58 '
59
60 With Browser("micClass:=Browser").Page("micClass:=Page")
61 .WebEdit("name:=username").Set "test"
62 .WebEdit("name:=mail").Set "[email protected]"
63 .WebEdit("class:=edit","html tag:=TEXTAREA").Set "haha"
64 .WebList("micClass:=WebList").Select "java"
65 .WebCheckBox("html id:=film").Set "ON"
66 .WebCheckBox("html id:=game").Set "ON"
67 .WebRadioGroup("micClass:=WebRadioGroup").Select " "
68 .WebButton("name:= ").Click
69
70 username=.WebTable("micClass:=WebTable").GetCellData(2,1)
71 mail=.WebTable("micClass:=WebTable").GetCellData(2,2)
72 sex=.WebTable("micClass:=WebTable").GetCellData(2,3)
73 End With
74
75 If username="test" and mail="[email protected]" and sex=" " Then
76 msgbox "OK"
77 End If
どのように取捨選択するか
2.オブジェクトドラッグ、F 7などで素早くコードを書き、自動的に生成することができ、間違えにくい.
2.オブジェクトライブラリのプログラミングが完了できない機能(オブジェクトが認識できない場合)
記述的プログラミングとオブジェクトライブラリプログラミングにはそれぞれメリットとデメリットがあり,誰が良いか悪いかは言えず,適切な時に適切な方法を採用することこそ正理である.
最良の方法は,オブジェクトが認識できるときはオブジェクトライブラリでプログラミングし,認識できないときは記述的にプログラミングすることである.