軟件測試自動化qtp系列講座_第1頁
軟件測試自動化qtp系列講座_第2頁
軟件測試自動化qtp系列講座_第3頁
軟件測試自動化qtp系列講座_第4頁
軟件測試自動化qtp系列講座_第5頁
已閱讀5頁,還剩142頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

【軟件測試自動化-QTP系列講座01】

在我們翻開QTP之后,我們可以看到有如下的一個Add?inManager框彈出來

這是一個QTP插件管理器,每次啟動前需要選擇對應(yīng)的插件才能進(jìn)行測試。

經(jīng)常會在網(wǎng)上看到一些朋友會問:這個工程是用什么什么語言寫的,應(yīng)該選擇哪個插件?

其實(shí)提出這個問題的朋友是因?yàn)闆]有了解插件的真正含義和作用。

插件的含義與作用:

Add-In的選擇是為了能夠成功識別對應(yīng)Add-in的測試對象控件,乜就是說是和被測控件

有關(guān),而跟什么什么語言寫的是沒有關(guān)系的。

需求:成功使用QTP的SPY識別出百度搜索框(WebEdit)控件

序號測試步驟預(yù)期結(jié)果

1雙擊彈出插件選擇框

2選擇WEB插件,點(diǎn)擊確定成功翻開QTP

3翻開瀏覽器,輸入BAIDU頁面成功跳轉(zhuǎn)百度

4點(diǎn)擊QTP的菜單欄下TOOLS-OBJECT彈出SPY框

SPY

5點(diǎn)擊手指圖標(biāo)按鈕頁面跳轉(zhuǎn)百度頁面

6點(diǎn)擊百度文本框SPY中顯示為WebEdit對象

正確插件SPY顯示對象,成功定位到WebEdit對象控件

錯誤插件SPY顯示對象,只能把整個瀏覽器識別為一個對象,而不能具體定位到正確的控

件對象

本卷須知:

一定要先開QTP,然后翻開IE,這樣SPY才能正確識別,因?yàn)榘惭b完

QTP之后,每次翻開IE,瀏覽器會自動加載BHOManager,而QTP在IE

中識別對象是依靠一個叫BHOManagerClass的動態(tài)鏈接庫來完成的,如

果是先翻開IE再翻開QTP,QTP就不能成功讀到BHOManager這個動態(tài)

鏈接庫而導(dǎo)致QTP識別對象失敗。

【軟件測試自動化-QTP系列講座02]==對象庫及原理透析

在介紹對象庫前首先要說一下QTP自動化的原理

通過以上3個步驟,QTP就可以完成自動化對象。

===========================實(shí)例1====================

這是一個非常簡單的例子~

如果覺得都懂的可以略過

序號測試步驟預(yù)期結(jié)果

1翻開對象庫彈出對象庫

2翻開瀏覽器,跳轉(zhuǎn)百度頁面成功跳轉(zhuǎn)百度

3A.點(diǎn)擊對象庫中的ADDOBJECTT。成功把搜索框添加到對

LOCAL象庫

B.選擇百度搜索框?qū)ο?/p>

4在專家視圖中輸入寫入輸入搜索框執(zhí)行專家視圖顯示腳本

腳本

5回放腳本測試對象自動化輸入

添加對象之前,見圖

添加完對象之后,見圖

QObjectRepository-AllObjectRepositories

FileEditObjectVjewToolsHelp

:EGCX勤3X具?癡船7Fiter:gjAllObjects▼

Action:|Actionl二|ObjectProperties

日gTestObjectsName:wd

三建百度一下,你就知道

白a百度一下,你就知道Class:WebEdit

Repository:Local

.CheckpointandOntputObjects

Testobjectdetails

NameValue

3Descriptionproperties

typetext

namewd

htmltagINPUT

三Ordinalidentifier

TypezValueNone

-Additionaldetails

EnableSmartIdentificationTrue

Comment

腳本顯示,如以下圖:

|Browserf1百度一下,你就知道")Pag式百度一下,你就知道)WebEdit("wd")6et"hellcworld"

回放之后,搜索自動輸入了HELLOWORLD~

如果能夠熟練掌握以上的例子之后我們就可以開始進(jìn)行下一步的工作

這局部的概念很重要,想學(xué)好QTP就一定要掌握。

熟練運(yùn)用

SetTOPropertyzGetROPropertyzGetTOProperty

首先說明一下TO和RO分別是什么意思

TO:測試對象庫

RO:運(yùn)行對象

簡單的說

SetTOProperty:修改對象庫中對象的屬性值

GetTOProperty:獲取對象庫中對象的屬性值

GetROProperty:獲取運(yùn)行對象的屬性值

===========================實(shí)例2===========================

就拿剛剛的那個例子接著做下去

現(xiàn)在對象庫里那個對象是百度的搜索框?qū)ο?,這點(diǎn)現(xiàn)在沒問題吧。

現(xiàn)在我要用這個對象庫里的對象來控制GOOGLE搜索框的對象

大家肯定會問:

百度的搜索框和GOOGLE的搜索框?qū)ο髮傩钥隙ㄊ遣灰粯拥?,怎么能?/p>

制GOOGLE的搜索框呢?

解決方案:更改對象庫里的屬性和GOOGLE的對象庫屬性一樣就0K了,

序列測試步驟預(yù)期結(jié)果

1使用SPY查看你GOOGLE搜索框的NAME顯示NAME屬性值為q

屬性

2使用SetTOProperty更改對象庫NAME腳本視圖重新改寫

屬性為q,并進(jìn)行輸入HELLOWORLD

3回放GOOGLE搜索框輸入

HELLOWORLD

步驟1:

如果不是很清楚怎么用SPY可以去【QTP系列講座1]Add-inManage「插件介紹

地址:

步驟2:腳本視圖輸入

viewplaincopytoclipboardprint?

1.Browser(“百度一下,你就知道").Page(“百度一下,你就知道)WebEdit(”wd”).

SetTOProperty“name“Jq”

2.Browser(“百度一下,你就知道").Page(“百度一下,你就知道”).WebEdit(”wd").

Set"helloworld"

Browser4百度一下,你就知道").Page("百度一下,你就知it▲

Browser("百度一下,你就知道").Page("百度嚇,你就知L

<??2_r^

步驟3:回放

頁面成功輸入HELLOWORLD

當(dāng)Gnngle-Micrn?offInternetFxplnrer

===========================實(shí)例3===========================

序列測試步驟預(yù)期結(jié)果

1查看對象庫的NAME屬性顯示NAME屬性值為wd

2GetTOProperty獲取對象庫的屬腳本視圖重新改寫

性值

3回放成功顯示指定對象庫的屬性

viewplaincopytoclipboardprint?

1.msgboxBrowser(“百度一下,你就知道").Page(“百度一下,你就知

iM").WebEdit("wd,').GetTOProperty(,'name")

msgboxBrowser(“百度一下,你就知道").Page(“百度一下,"

GetROProperty用法和GetTOProperty是一樣的,只不過一個是運(yùn)

行對象屬性,而一個是對象庫中的屬性

細(xì)分的朋友應(yīng)該會發(fā)現(xiàn)既然有獲取對象庫中對象屬性,修改對象庫中對

象屬性,獲取運(yùn)行時對象的屬性。

為什么沒有SetROProperty修改運(yùn)行時對象的屬性呢~

因?yàn)檫@個方法可以直接使用調(diào)用對象[object.屬性值】的自身接口來

修改運(yùn)行對象的屬性~

=====================二==實(shí)例3===========================

序列測試步驟預(yù)期結(jié)果

1修改搜索框的長度腳本視圖重新改寫

2問放百度搜索框被改短了

viewplaincopytoclipboardprint?

1.Browser(“百度一下,你就知道)Page(“百度一下,你就知道”).WebEdit("wd”).

Object.size="l"

Browser("百度一下,你就知道").Page("百度一下,你就知弓

dI/

步驟2.回放,看到百度的搜索框變短了,是不是很好玩,哈哈

眉I百度一下,你就知道-MicrosoftInternetExplorer

文件⑹編輯?查看M收藏⑥工具①幫助(由______________________________________________________

Q后◎▼團(tuán)倒松i|q霞索☆收喉力|七*;*"▼口4畿

地址(0)(^)/―J

Bai總百度

新聞用頁貶吧地道MP3圖出1視頻

廠|百度一下in

空間10123|更多〉

把百度設(shè)為主頁

加入百度推廣I搜索風(fēng)云榜|關(guān)于百度|AboutBaidu

?2009Baidu使用百度前必讀亙ICP證。3U173號令

的廠廠廠廠廠回

總結(jié);

這一章的東西比較多,也非常的重要,可別小看這些概念,關(guān)鍵大家一定要實(shí)踐才能

真正領(lǐng)悟到其中的含義。今天內(nèi)容就到這里。。

【軟件測試自動化-QTP系列講座03]==手工參數(shù)化==

我一直不提倡使用錄制來完成測試腳本的,建議用手工方式來編寫測試腳本,因

此今天首先介紹下手工參數(shù)化

相信普通的參數(shù)化問題大家也應(yīng)該都知道吧~

如果不知道的可以去百度進(jìn)行搜索有一大堆

===================實(shí)例===================

繼續(xù)上次的百度實(shí)例~

viewplaincopytoclipboardprint?

1.B「owse「("百度一下,你就知道").Page(“百度一下,你就知道)WebEdit(”wd”).

Set"helloworld"

Browser("百度一下,你就知道").Page("百度一下,你就知其二

<1I…/

接下來要做的就是參數(shù)化

序測試步驟預(yù)期結(jié)果

1在datatable中選擇ACTION1這個sheetACTION1的SHEET表被選中

2在actionl這個SHEET中雙擊A列A列名被更改為searchcontent

彈出框輸入searchcontent,點(diǎn)擊OK按鈕

3在searchcontent列的第一行輸入列表顯示HELLOWORLD

HELLOWORLD

4更改腳本為讀取DATATABLE腳本更新

5回放百度搜索框成功輸入

helloworld

步驟2.

在actionl這個SHEET中雙擊A列

彈出框輸入searchContent,點(diǎn)擊0K按鈕

步驟3.在searchcontent列的第一行輸入HELLOWORLD

步驟4.

更改腳本為讀取DATATABLE

viewplaincopytoclipboardprint?

1.Browser(“百度一下,你就知道").Page(“百度一下,你就知道").WebEdit(“w

d").Setdatatablef'searchContent'\dtLocalSheet)

Browser("百度一下,你就知道").Page("百度一下,你就知北二

山I:::::::::::::::::::2dd

步驟5

回放

小提示:當(dāng)datatable的列數(shù)超過2列時,輸入DATATABLE(會自動出現(xiàn)代碼提

i.Setdatatabled

"password"

"searchContent"

a*'username*1

datatable還有很多用法~感興趣的可以通過Fl查看它的所有方法

Description

Therun-timeDataTable.

Note:Allmethodsperformedorth

DataTableobjectarereflectedintt

AssociatedMethods

?AddSheetMethod

?DeleteSheetMethod

?ExportMethod

?ExoortSheetMethod

?GetCurrentRowMethod

?GetRowCountMethod

?GetSheetMethod

?GetSheetCountMethod

?ImoortMethod

?ImoortSheetMethod

?SetCurrentRowMethod

?SetNextRowMethod

?SetPrevRowMethod

AssociatedProperties

?GlobalSheetProoertv

?LocalsheetProperty

?RawValuePropertY

?ValueProoertY

【軟件測試自動化?QTP系列講座04]==資源池=

QTP的資源池具有可以從外部文件讀取測試腳本的功能。

當(dāng)我們在寫完公共函數(shù)庫的時候,我們就可以通過資源池來靈活的調(diào)用我們之前的函數(shù)庫

下面就來介紹一下

首先我們新建一個“test.txt”文件

內(nèi)容如下

viewplaincopytoclipboardprint?

1.functionhello_world_msg(tt)

2.msgboxtt

3.endfunction

4.functionhello_world_add(azb)

5.msgboxa+b

6.endfunction

functionhello_world_nisg(tt)

msgboxtt

endfunction

functionhello_world_add(a,b)

msgboxa+b

endfunction

jd

<1I

1?我們翻開QTP,新建一個TEST

2.選擇菜單欄的FILE->SETTING

點(diǎn)擊F7彈出stepgenerator

category:Function

library:LibraryFunctions

選擇我們剛剛寫的那個函數(shù)并輸入?yún)?shù)點(diǎn)擊確定

密StepGenerator兇

Categof?:(Functions三I

Library:(libraryfunctionsZJ

Operalion:helloworldaddZ]創(chuàng)

QTP就自動生成了一段代碼

viewplaincopytoclipboardprint?

1.hello_world_add1,2

helloworldaddI,2

執(zhí)行一下是不是彈出

其實(shí)我們還可以使用另外一種更加快捷的方法來寫這個函數(shù)

那就是使用前面一章所講到的COMPLETEWORD來快速編寫函數(shù)

不熟悉的朋友可以去學(xué)習(xí)下:

Action12d

The|

aFix

QFormatCurrency

AFormatDaleTime

QFormatNumber

QFormatPercent

QGetLaslError

QGetObject

GGetRef

°hello_wo(ld_add

helfo_wo(ld_msg

選擇后直接回車后,會顯示相應(yīng)的參數(shù)名

hello_world_add

helloworldadd(a,b)|

然后輸入?yún)?shù)就OK啦~

【軟件測試自動化-QTP系列講座05]==DOM技術(shù)的應(yīng)用==

看過第二章【QTP系列講座2]對象庫及原理透析的朋友都應(yīng)該知道

不清楚的朋友可以看這里

地址:

QTP自動化測試對象首先是從對象庫獲取測試對象,然后直接通過對象庫對象和真實(shí)對象

進(jìn)行匹配后來控制對象的~

|Browser(“百度一E你就知道")Page("百度一下,你就知道)WebEdit("wd')Set"helloworld"

<type="text/javascript"><src="://pagead2.googlesyndication

/pagead/show_ads.js"type="text/javascript">

就是通過上面這句話我們可以對百度的搜索框進(jìn)行輸入內(nèi)容。

但其實(shí)我還可以通過HTMLDOM的方法來獲取對象的ID或者NAME來控制我們想要的

對象

====================實(shí)例=====================

需求:

使用DOM技術(shù)進(jìn)行自動化

2.輸入helloworld

步驟:

viewplaincopytoclipboardprint?

1.Browser*(“百度一下,你就知道)Page(“百度一下,你就知道”).Object.getEle

mentById("kw").value="helloworld"

2.Browser^'百度一下,你就知道").Page(“百度一下,你就知道”).Object.getEle

mentById("sb").click

Browser("百度一下,你就知道").Page("百度一下,你就知it/

Browser("百度一下,你就知道").Page("百度一下,你就知『

三(百度搜索helloworld-MicrosoftInternetExplorer

立件(巳編捐(E)查看(匕收藏(9XM(D幫助(t!)

。后退▼◎▼El囹。IQ搜索收藏夾金改號前▼M馥搐

地址(0)|⑥http:"www.baidu.com/s?wd=helloworld

新聞網(wǎng)頁貼吧知道MP3圖片視頻

|helloworld百度一下|結(jié)果中找|至

把百度設(shè)為主頁百度一下,找到相關(guān)網(wǎng)頁約248,0001

您要找的是不是:hell。world來百度推廣您的產(chǎn)品

helloworld百度百科

作為所有編程語言的起始階段,HELLOWORLD占據(jù)著無法改變的地位所有中度法/找helloworld,點(diǎn)此進(jìn)入?

德/美?版本的編程教材中,HELLOWORLD總是作為第一個TEST記錄千書本之中所最新helloworld,點(diǎn)此進(jìn)入,

有的編程第一步就在于此了!經(jīng)典之中的經(jīng)典!HELL。WORLD!這個例程是從Kernigha做helloworld生意,諳來慧M

n...搜索最新helloworld,點(diǎn)此正

baike./view/47227.htm61k2009-8-31-百度快照看helloworld小說在起點(diǎn)中士

上的更多結(jié)果

發(fā)布唐看關(guān)于—world的彳

helloworld一百度圖片

分辯率.120x902kjpg...1024x768helloworld分辯率.??120x902kjpchelloworld-動

漫-日本動漫■…120x904kjpghellowodd-動漫-日本動漫-…120x9。2kjpghelloworld-動

漫-日本動漫-…120x904kjpghelloworld-...

/i?tn=baiduimage&ct=20...30K2009-8-13-百度快8

HelloWo—d-維基百科,自由的百科全書

HelloWorld維基百科自由的百科全書跳轉(zhuǎn)到:導(dǎo)航,搜索本文介紹的是一類基本的計算機(jī)

程序。關(guān)於Nitro+的電腦游戲詳見。跳過字詞轉(zhuǎn)換說明漢漢▼▲為了同讀方便,本文使用

全文手工轉(zhuǎn)換。轉(zhuǎn)換內(nèi)容:簡體程序;繁體:程式;當(dāng)前用字模式下顯示一

/wiki/Hello_World125K2009-8-18-百度快照

IBMdeveloperWorks中國:Hell。World系列教程:學(xué)習(xí)文「何使用..

“HelloWorld”業(yè)務(wù)流程應(yīng)用。WebSphereEnterpriseServiceBus:開發(fā)用干協(xié)議轉(zhuǎn)換

通過以上例子我們可以看到又有了一種新的控制對象的方法,其中控制對象有很多種

我這里就以百度搜索框輸入為例,總結(jié)一下確定對象的一些方法

viewplaincopytoclipboardprint?

1.B「owse「("百度一下,你就知道").Page(“百度一下,你就知道“).WebEdit(”wd”).

Set"helloworld"

BrowserC1百度一下,你就知道").Page("百度一下,你就知弓

viewplaincopytoclipboardprint?

1.Browser("百度一下,你就知道").Page(“百度一下,你就知道").webedit("name:

=wd").Set"123"

Browser("百度一下,你就知道").Page("百度一下,你就知目

viewplaincopytocllpboardprint?

1.Browser(“百度一下,你就知道").Page(“百度一下,你就知道)WebEdit("wd)

Object,value="hellowo^ld,,

viewplaincopytoclipboardprint?

1.8「0\^^「(“百度一下,你就知道")下己92(”百度一下,你就知道”).052(1?21£尼

mentById("kw").value="helloworld"

Browser「百度一下,你就知道").Page("百度一下,你就知打▲

<1I

viewplaincopytoclipboardprint?

1.'描述對象

2.SetoDesc=Description.Create()

3.oDesc("micclass").Value="WebEdit"

4.'獲取webedit的數(shù)量

5.edit_count=Browser("百度一下,你就知道").Page("百度一下,你就知道").Ch

ildObjects(oDesc).court

6.'獲取子對象集合

7.seteditobjects=Browser("百度一下,你就知道").Page("百度一下,你就知道)

ChildObjects(oDesc)

8.Fori=0toedit_count-l

9.Ifeditobjects(i).GetROProperty("name")="wd"then

10.editobjects(i).set"helloworld"

11.EndIf

12.Next

【軟件測試自動化-QTP系列講座06]==利用DotNetFactory調(diào)用.NET類庫

首先我們看一下F1是怎么說明DotNetFactory的,我們翻開QTP輸

入DotNetFactory后,選中它按F1后

我們可以看到它的一個示vsrc=H:///js/

blog/tiny_mce/themes/advanced/langs/zh.js"type="text/ja

vascript"><src=":///js/blog/tiny_m

ce/plugins/syntaxhl/langs/zh.jsHtype="text/javascript">

例:

viewplaincopytoclipboardprint?

1.Setvar_CreateInstance=DotNetFactory.CreateInstance("System.Win

dows.Forms.Form","System.Windows.Forms")

2.var_CreateInstance.Show

3.wait2

4.var_CreateInstance.Close

Setvar_CreateInstance=DotNetFactory.Createlnstai

var_CreateInstance.Show

wait2

vAr_CrftatoTnstancft.Cl

運(yùn)行這個例如后我們可以看到個Form窗口彈出來,2秒后窗口自動關(guān)閉

相信大家看類名也應(yīng)該知道一個是寫,一個是讀吧~由于我們在自動化測試中經(jīng)常會用到寫

文件和讀文件這些應(yīng)用,比方寫日志,讀配置啊一些的。所以掌握這兩個類的使用方法還是

很有用的。

接下來就通過一個例子來說明下怎么來使用這兩個類。

==================實(shí)例1=============

1.翻開QTP,輸入以下代碼

viewplaincopytoclipboardprint?

Li*********************使用,NET類寫文件**********************

**

2.SetoFile=DotNetFactory("System.10.StreamWriter",,"d:\test.txt")

3.寫'文件

4.oFile.Write"testreport"

5.oFile.WriteLinenow

6.'關(guān)閉文件

7.oFile.Close

8.'消楚對象

9.oFile.dispose

10.SetoFile=Nothing

11.SetoEncoder=Nothing

'*********************使用.NET類寫文件*************:-

SetoFile=DotNetFactory(^System.10.StreamWriter*,--

'寫文件““_

oFile.Write*testreport”

oFile.WriteLinenow

'關(guān)閉文件

oFile.Close

‘清楚對象

oFile.dispose

SetoFile=Nothing

SetoEncoder=Nothing

山/

2.SetoFile=DotNetFactory("System.IO.StreamWriter",z"d:\test.txt")

這步代表創(chuàng)立一個類的對象并且賦予參數(shù),這里的參數(shù)就是我們要寫文件的文件地址

3.運(yùn)行代碼后,我們可以看到D盤里多出一個test.txt文件,里邊有我們之前寫進(jìn)文件的

內(nèi)容

實(shí)例2

1.寫完文件之后,我們就可以進(jìn)行讀文件了,也是?樣,保存我們之前創(chuàng)立的那個文件,新

建QTPtest寫入代碼

viewplaincopytoclipboardprint?

],*********************使用NET類讀文件**********************

2.SetoFile=DotNetFactory("System.IO.StreamReader",z"d:\test.txt")

3.讀'文件

4.msgboxoFile.readLine

5.'關(guān)閉文件

6.oFile.Close

7,節(jié)青楚對象

8.oFile.dispose

9.SetoFile=Nothing

10.SetoEncoder=Nothing

,*********************使用.NET類讀文件*************_|

SetoFile=DotNetFactory(*System.10.StreamReader*,—

'讀文件」

msgboxoFile.readLine

'關(guān)閉文件

oFile.Close

‘清楚對象

oFile.dispose

SetoFile=Nothing

SetoEncoder=Nothing

LI/

總結(jié):

l.QTP參加了DotNetFactory之后使QTP更加強(qiáng)大了,因?yàn)樗坏苷{(diào)用

現(xiàn)成的?NET類庫,而且還能調(diào)用自己寫的類庫,詳細(xì)方法可以去3A看我出的

視頻里有

地址:

2,寫文件的方法除了DotNetFactory,還可以通過調(diào)用COM組件的FSO

的方法來實(shí)現(xiàn),這個我會在后續(xù)的系列中講到,盡請期待!

【軟件測試自動化-QTP系列注座07]==自定義COM組件的實(shí)現(xiàn)(一)WSC

COM組件是?個在我們自動化測試中很常用的?個東西

但其實(shí)我們不止可以調(diào)用這些COM組件,其實(shí)我們還可以自己開發(fā)COM組件來進(jìn)行調(diào)用

準(zhǔn)備工作:

首先我們需要下載一個WSC向?qū)С绦?windowsscriptcomponentwizard(這個

網(wǎng)上很多大家搜索一下就有了)

===============實(shí)例===============

1.下載完成后,翻開程序,輸入NAME為zzxxbb,并選擇我們要生成WSC文件的路徑,

點(diǎn)NEXT

DefineWindowsScriptComponentobject

CancelNext>finish

2?這一步選擇語言,我們這里就默認(rèn),點(diǎn)擊NEXT

3.這一步添加屬性名和屬性值的,也是默認(rèn),點(diǎn)擊NEXT

4?這一步是填寫函數(shù)名和函數(shù)參數(shù)的,我們這里填入函數(shù)名:msg參數(shù)名:content,點(diǎn)

擊NEXT

5.一直NEXT,最后點(diǎn)擊FINISH,完成WSC的向?qū)?,成功在對?yīng)的路徑生成了WSC文件

6.點(diǎn)擊確定后,找到生成的WSC文件雙擊翻開后

7.對此文件中的MSG方法進(jìn)行修改,把原來的語句注釋掉,添力『'msgboxcontent"

8.添加完保存文件并關(guān)閉,我們右鍵點(diǎn)擊我們之前生成的WSC文件選擇注冊

:zzxxbb.vM

打開(8

通用類型庫(0

注冊(B)

不注冊(U)

EditPlus

9.注冊完之后我們自己開發(fā)的COM組件就成功完成了并導(dǎo)入注冊表了,接下來就可以通過

QTP來調(diào)用它了。

障Action1J

1Setwsc=createobject('zzx<bb.WSC")

2wsc.msg"helloworld"

3

10.輸入以上代碼之后,我們就可以成功執(zhí)行剛剛我們寫的那個函數(shù)了,I可放之后彈出消息

這樣?個COM組件就已經(jīng)生成并已經(jīng)能夠成功調(diào)用了~

其實(shí)我們平時可以把經(jīng)常需要使用的方法都注冊進(jìn)COM里,以后就可以直接使用這些方法

來調(diào)用了

總結(jié):

1.COM組件有很多種我們可以下載一個VBSEDIT進(jìn)行查閱

下載地址可以去3A論壇:

查閱方法,翻開VBSEDIT之后,點(diǎn)擊菜單欄的TOOLS--REFERENCE??ADD,翻

開下拉框就全部出來了

2.自定義COM組件的方法不止這一種,還有vsrc=n://

/js/blog/tiny_mce/themes/advanced/langs/zh.jsntype="text/javas

criptn><src=n:///js/blog/tiny_mce/plugins

/syntaxhl/langs/zh.js"type=ntext/javascriptu>一種方法通過VB6生成A

CTIVEXDLL來生成COM組件

這個會在下一章<src=n:///js/blog/tiny_mce/t

hemes/advanced/langs/zh.js"type=,,text/javascript,'><src=u

///js/blog/tiny_mce/plugins/syntaxhl/langs/zh.j

s"type=,'text/javascript">講解,個人比較推薦后一種

【軟件測試自動化?QTP系列講座08]==自定義COM組件的實(shí)現(xiàn)(二)activex

dll生成篇

在上一章我們講到了使用WSC向?qū)蒞SC文件來創(chuàng)立自定義COM組件,并且實(shí)現(xiàn)在

QTP中的調(diào)用

今天來講一下第二種方式,第二種方式其實(shí)說穿了就是在VB6里寫好函數(shù)封裝成DLL之后

生成自定義COM組件。

<type="text/javascript">

準(zhǔn)備工作:下載VB6網(wǎng)上有很多

如果找不到可以到我提供的這個地址下載:://61.dc.ftn.cici/ftnhandler/

Ifb4107ad7140fd2e6f5ba3f2c64bbd334d48d257ab2143f8b6

aO4a589aa8bb86cfb698d78ac999cb22bd74fd0dbee88e32a78fo7eafb

9a1aa4b20a40/VisualBasic6精簡版.「ar?k=793539335a2aabceaac8e

5291565061e06060a030b04060019540a52545c060700060902075f5

2337c34675d464c525f457650475c5al305458a9a88c789d51dl7554

334

地址14天過期

如果實(shí)在是找不到,或者沒方法下載可以郵件我,我會及時發(fā)你:zzxxbbll2@163

L裝完之后,我們就可以開始翻開VB6應(yīng)用程序了,翻開之后,選擇ActiveXDLL,點(diǎn)擊

翻開

3.修改右邊的工程名和類名分別為:zzxxbb和operator

|工程-zzxxbb

回至C2

Hzzxxbb(zzxxbb)

■國女曾^塊'

OperatorI(Operator)

4.點(diǎn)擊左上角菜單欄的文件一?生成DLL

^.zzxxbb-MicrosoftVisualBasic[設(shè)計]

文件⑹編輯㈤視圖出工程的格式。

新建工程Ctrl+N電電A

今打開工程9)…Ctrl+O

添加工程(9…

erator(Ci

移除工程(B)

Q保存工程(Dadd(a,b)

)

工程另存為(玲…xa+b

:ion______

保存operator(5)Ctrl+Sminis(a,

>xa-b

另存為⑷…

operator:ion

保存選擇?

保存更改的腳本色)

昌打印回…Ctrl+P

口打印設(shè)置(6…

生成zxxbb.dlKQ…

生成工程組⑥,

退出⑻Alt+Q

5.生成完之后,如果你的QTP是10.0以下的話,可以使用vbsedit直接在里邊寫好代碼,

然后黏貼進(jìn)QTP

因?yàn)閂BSEDIT有代碼提示,可以看到自己寫的方法。

6.上圖的兩個方法就是我們之前寫的兩個方法,然后我們寫入方法,并運(yùn)行

2Untitled?-VbsEdit

FileEditViewDebugSnippetsSamplesToolsHelp

」」U心|C|3Snippets▼|老◎菌HelpX)Q二.|率率二

?Start1021>jWScript/CScript后|3

1Setaaa=CreateObject("zzxxbb.operator")

2aaa.add1,2|

|<|I

Ready|Ln2,312

運(yùn)行結(jié)果為3,成功之后就可以把我們的腳本放入QTP之中運(yùn)行了~

如果你是QTP10.0的話,可以不用VBSEDIT直接在QTP里寫就會出現(xiàn)提示

|電Action13

1:Setaaa=CreateObject(uzzxxbb.operater")

aaal

Wadd

?minus

運(yùn)行之后的結(jié)果也是一樣

SXU|

|噫Action13

1:Setaaa=CreateObject("zzxxbb.operator")

2:aaaadd1,3

|@QuickTestProfessional-

:2FileEditViewinsertAutomationResourcesDebugloolsWindorHelp

?二-二▼■Stop

德Actiord

1:Setae?CreateObjecti:"zzxxbb.operator,,,i

2:?i>aaa.add1.3

3:

本卷須知:

【軟件測試自動化-QTP系列講座09]==AutoItX技術(shù)的應(yīng)用==

首先介紹一下Autolt:

Autoltv3是用以編寫并生成具有BASIC語言風(fēng)格的腳本程序的免費(fèi)軟件,它被設(shè)

計用來在WindowsGUI(用戶界面)中進(jìn)行自動操作。通過它可以組合使用模擬鍵擊、

鼠標(biāo)移動和窗口/控件操作等來實(shí)現(xiàn)自動化任務(wù),而這是其它語言所無法做到或尚無可靠方

法實(shí)現(xiàn)的(比方VBScript和SendKeys)。

<type="text/javascript"><src="://pagead2.googlesyndication

/pagead/show_ads.js"type="text/javascript">

首先要使用AUTOIT肯定需要先安裝它,安裝文件網(wǎng)上很多,這里我就不提供下載地址了

Z

大家可以自己百度去搜一下,安裝完之后,AUTOIT會自動注冊一個AUTOITX的DLLC

0M組件~

接下來就可以在QTP里編寫腳本了,如果是10.0的話可以直接在QTP里編寫,如果不是

就先在VBSEDIT里編寫〔原因:有代碼提示)

1.在QTP腳本視圖里輸入

viewplaincopytoclipboardprint?

1.SetoAutoIt=CreateObject("AutoItX3.Control")

SetoAuloIl=CrealeObject(^AulollX3.Control*)

dI/

2.由于在我們安裝AUTOIT過程中已經(jīng)自動注冊過了COM,所以通過oAutoIt這個對象

可以點(diǎn)出很多方法和屬性。

2n

|4^.Action1

1:SetoAutolt=CreateObject("AutoltX3.ControI")

2:oAutoltJ

^AutoltSetOption

qBlockinput

?CDTray

qClipGet

GClipPut

qControlClick

QConlrolCommanc

QControlDisable

GControlEnable

QControlFocus

QControlGetFocus二J

知道了怎么調(diào)用之后我們就可以通過一個最簡單的實(shí)例來了解下AUTOIT究竟是一個怎么

樣的東西,它能夠做些什么

就以飛機(jī)訂票登陸為例

在QTP腳本視圖中輸入

viewplaincopytoclipboardprint?

1.'創(chuàng)立對象

2.SetoAutolt=CreateObject("AutoltX3.Control")

3.'啟動飛機(jī)訂票注意路徑每個人的路徑可能不一樣

4.oAutolt.Run"D:\\ProgramFiles\\HP\\QuickTestProfessional\\samples\

\flightWappWflight4a.exe"

5.'等待登陸窗口彈出

6.oAutolt.WinWaitActive"Login"

7.'給用戶名控件發(fā)送消息:zzxxbbll2

8.oAutolt.ControlSend"Login","","Editl","zzxxbbl12"

9.'給密碼控件發(fā)送消息:mercury

10.oAutolt.ControlSend"Login"/"","Edit2","mercury"

11.'點(diǎn)擊LOGIN按鈕

12.oAutoIt.Controlclick"Login","Button1"

13.setoAutoIt=nothing

'創(chuàng)建對象

SetoAutoIt=CreateObject(""AutoItXS.Control")

'啟動飛機(jī)訂票注意路徑每個人的路徑可能不一樣

oAutoIt.Run*D:WProgramFilesWHPWQuickTestProf

'等待登陸窗口料出

oAutoIt.WinWaitActive"Login”

'給用戶名控件發(fā)送消息:zzxxbbll2

oAutoIt.ControlScnd"Login","Edi11","zzxxbbl12"

,/東碼拴件愛送消息:mercury

oAutoIt.ControlSend“Login”,**,*Edit2*,“mercury”

'點(diǎn)擊LOGIN按鈕

oAutoIt.ControlClick"Login","Bultonl”

setoAutoIt=nothing

<1I

簡單的介紹一下每一步的意思

viewplaincopytoclipboardprint?

1.SetoAutoIt=CreateObject("AutoItX3.Control")

SetoAutoIt=Cr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論