Thursday, June 13, 2013

VBS : Tutorial 1 (variables and datatypes)

VBS : Tutorial 1 (variables and datatypes)

 
Input/ Output Operations
Displays a prompt in a dialog box, waits for the user to input text or click a button, and returns the contents of the text box.
Example:
Dim Input
Input = InputBox("Enter your name")
MsgBox ("You entered: " & Input))
 
 
Variable
o Must begin with an alphabetic character.
o Cannot contain period.
o Must not exceed 255 characters.
o Must be unique
Ex:          dim variable_name
                variable_name =InputBox("Enter your name:")
 
A variable containing a single value is a scalar variable.
A variable containing a series of values, is called an array variable.
 
 
VB Script Data Types--VARIANT
1.       One data type called a VARIANT
2.       Special kind of data type
3.       It can contain different kinds of information, depending on how it is used
4.       Only data type in VBScript
5.       Variant behaves in a way that is most appropriate for the data it contains.
6.       VarType
 
 
-------------------------------VarType ----------------------------------
Example 1 :
Dim a
a="hi"
msgbox vartype(a)
 
Example 2 :
Dim a
a="3"
msgbox vartype(a)
 
 
·         0 = vbEmpty - Indicates Empty (uninitialized)
·         1 = vbNull - Indicates Null (no valid data)
·         2 = vbInteger - Indicates an integer
·         3 = vbLong - Indicates a long integer
·         4 = vbSingle - Indicates a single-precision floating-point number
·         5 = vbDouble - Indicates a double-precision floating-point number
·         6 = vbCurrency - Indicates a currency
·         7 = vbDate - Indicates a date
Example1:
                        Dim a
                        a="1/1/2013"
                        msgbox vartype(a)
                        a=cdate(a)
                        msgbox vartype(a)
Example2:
                        Dim a
                        a="10:55:05"
                        msgbox vartype(a)
                        a=cdate(a)
                        msgbox vartype(a)
 
·         8 = vbString - Indicates a string
·         9 = vbObject - Indicates an automation object
·         10 = vbError - Indicates an error
·         11 = vbBoolean - Indicates a boolean
·         12 = vbVariant - Indicates a variant (used only with arrays of Variants)
·         13 = vbDataObject - Indicates a data-access object
·         17 = vbByte - Indicates a byte
·         8192 = vbArray - Indicates an array
--------------------------------------------------------------------------------------------
 
Keywords -
Date-                    Returns the current date
Time-                    Returns the current time 
Example : msgbox Time
 
Day -                      Returns day from a date
Month -              Returns month from a date
Weekday -          Returns weekday from a date
Year -                    Returns year from a date
Hour -                   Returns hour from a time
Minute-               Returns minute from a time
Second-               Returns seconds from a time
Example : msgbox Year(Date)
                msgbox second(time)
 
Now-                    Returns current date and time
Example : msgbox Now
 
Abs                        Returns absolute value of a number
Asc                         Returns the ASCII code of a character
Chr                         Returns a character from an ASCII code
msgbox abs(-1.3)
msgbox asc("a")
 
CBool                   Converts a variant to a boolean
CByte                    Converts a variant to a byte
msgbox CByte(123.33) > 123
CDate                    Converts a variant to a date
CDbl                      Converts a variant to a double
Cint                       Converts a variant to an integer
CLng                      Converts a variant to a long
CSng                      Converts a variant to a single
CStr                        Converts a variant to a string
--------------------------------------------------------------------------------
Constant
Example :
Dim a
                a="hi"
                const x="xxx"
                msgbox x
                x=10
----------------------------------------------------------------------------------
Operators
1.       Parentheses to override override the order of precedence
 
                Operator                                                                             Description
1) Exponentiation Operator (^)                 Raises a number to the power of an exponent.
2) Multiplication Operator (*)                     Multiplies two numbers.
3) Division Operator (/)                                 Divides two numbers and returns a floating-point result.
4) Integer Division Operator (\)                 Divides two numbers and returns an integer result.
5) Mod Operator                                              Divides two numbers and returns only the remainder.
6) Addition Operator (+)                               Sums two numbers.
7) Subtraction Operator (-)                          Finds the difference between two numbers or indicates the negative value of a numeric expression.
8) Concatenation Operator (&)                  Forces string concatenation of two expressions.
 
Operator
1) =        Equal to                5) <=      Less than or equal to
2) <>      Not equal to       6) >=      Greater than or equal to
3) <        Less than             7) Is        Object equivalence
4) >        Greater than                     
 
Operator                                                             Description
1) Addition Operator (+)                               Sums two numbers.
1.       1) Both expressions are numeric-       Add.
2.       2) Both expressions are strings-         Concatenate.
3.       3) One expression is numeric and the other is a string   -Add.
 
2) Concatenation Operator (&)  --->        Forces string concatenation of two expressions.
 
Operator                                             Description
               
1) Not-                  Performs logical negation on an expression.       
result= Not expression
 
2) And-                 Performs a logical conjunction on two expressions.
result= expression1 And expression2
 
3) Or      -             Performs a logical disjunction on two expressions.
                result= expression1 Or expression2
 
4) Xor    -              Performs a logical exclusion on two expressions.             
result= expression1 Xor expression2
 
5) Eqv                    -Performs a logical equivalence on two expressions.
result= expression1 Eqv expression2
                                                                                                (Ex-OR is given as "either A OR B but NOT both)
 
 
 


Wednesday, June 12, 2013

QTP : DataTables

QTP : DataTables
 
 
 
'Note in QTP  COLUMNS ARE CALLED AS "PARAMETERS "
 
'Setting Row to be operated
'----------------------------------------------------------------------------------
datatable.GetSheet("Global").SetCurrentRow 1
'----------------------------------------------------------------------------------                                                                                                              
 
 
'Write Data into a cell
'----------------------------------------------------------------------------------
datatable.GetSheet("Global").AddParameter "A","Hi" 
datatable.GetSheet("Global").AddParameter "B","Bye"                              
'----------------------------------------------------------------------------------
 
 
'Read Data into a cell
'----------------------------------------------------------------------------------
msgbox  datatable.GetSheet("Global").GetParameter ("A").Value                 
msgbox  datatable.GetSheet("Global").GetParameter ("B").Value
'----------------------------------------------------------------------------------
 
 
'Read Columns and Rows
''----------------------------------------------------------------------------------
msgbox "Row Count ="&datatable.GetSheet("Global").GetRowCount 
msgbox "Column Count ="&datatable.GetSheet("Global").GetParameterCount                              
'----------------------------------------------------------------------------------
 
 
'Display                Column name
'----------------------------------------------------------------------------------
msgbox "Column 1 Name="&  datatable.GetSheet("Global").GetParameter (1).Name 
'----------------------------------------------------------------------------------
 
 
'Number of Actions or Datatables
'----------------------------------------------------------------------------------
Msgbox "No of Actions ="&Datatable.GetSheetCount-1                       
'----------------------------------------------------------------------------------
 
 
'Add New Column
'----------------------------------------------------------------------------------
datatable.GetSheet("Global").AddParameter "xyz",""
'----------------------------------------------------------------------------------

'Datatable in Actions
'----------------------------------------------------------------------------------
RunAction "Action1",oneIteration,Datatable("A","Global")   'A=> 1-2
'----------------------------------------------------------------------------------



Monday, May 20, 2013

Restart Remote machine from another machine in the network

Restart Remote machine from another machine in the network



Pre-Req :
  1. You need to have admin access to restart the victime machine .
  2. Its better if  machine under operation and victim are in the same network

First Ping the machine if its operating

  1. Goto Start>Run > Type cmd
  2. Type  "ping ip address" or "ping computer_name"  .Eg:  ping vx32Dev99
  3. See whether you notice any reply statements .  
To restart the Machine
  1. Goto Start>Run > Type cmd
  2. type "shutdown -i"
  3. Click on Browse and select the computer > Click on Add
  4. Select Restart
  5. Write any comment .
  6. Click on Ok
  7. If operation is success - You'll see message "Succeeded machine_name" . If Failed you'll see "Failed"

Saturday, May 11, 2013

QTP : Excel As DataBase

 Excel As DataBase


Create an excel book in "c:\1.xlsx" and  name any sheet as "Sheet1" (Default name). In  Sheet 1 , the 1st row is the column names , the rest of the rows forms the data .


CODE BELOW:

Dim objCon, objRecordSet, strExlFile, colCount, row, i

Set objCon = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")

sPath="c:\1.xlsx"
sSheetname="Sheet1"

objCon.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="& sPath &";Extended Properties=Excel 12.0;Persist Security Info=False"
strSQLStatement = "SELECT * FROM ["& sSheetname &"$]"

objRecordSet.Open strSQLStatement, objCon 'create recordset
colCount = objRecordSet.Fields.count 'Number of columns in the table

While objRecordSet.EOF=false
row=""
For i=0 to colCount-1
row=row &" "& objRecordSet.fields(i)
Next
'Print row 'If you are running this in Qtp you can uncomment this line
msgbox row
objRecordSet.moveNext
Wend

Set objRecordSet = Nothing
objCon.Close
Set objCon = Nothing

Friday, May 10, 2013

Qtp 11 not identifying .NetObjects

Qtp 11 not identifying .NetObjects


Our app was upgraded from existing Infragistics 2009.1 to 12.2 . We needed to make sure app had no bugs after upgrade.Therefore our automation Framework needed to keep up with that.


Here is following upgrades on App
1.Upgrading from 32Bit to  64 Bit
2.Upgrading to Xp sp 3 to 7
3.Upgrading Dot Net FW 3.5 to 4
4.Upgrading to Net Advantage 12.2

Simultaneous Qtp upgrades needed for automation
1. DotNetFW 4.0 which our new app uses does not support our existing Qtp 10 we need 11 or above.
2. Since Dev Team will be getting Infragistics Net Advantage 12.2 , I suggested we must be equipped with Test adv 12.2

Download QTP 11.0 Link
http://www8.hp.com/us/en/software-solutions/software.html?compURI=1172957#
Click on > Trials and Demos >Select Hp QTP Essentials 11.0 English Evaluation (Web Gui testing only)

During my analysis these are the following findings :

1.  Qtp 11.5 or Unified Functional Testing Tool 11.5 is only compatible with ALM (App LifeCycle Managment )   10 or above . Meaning if you are using QC  you are screwed.
2.  Test Advantage 12.2 requires at-least Qtp (Uft) 11 or above.
3. Unlike Qp 11.5 , Qtp 11 is compatible with both QC and Alm.

Sl no
Environment
Vxxxx64xxxx
Dxxxx32
Axxxxxx32
Vxxxx64_2
1
Machine Type
64 Bit
32 Bit
32 Bit
64 Bit
2
Operating System
64 bit  Xp
Xp
Xp
64 Bit Xp
3
Dot Net Framework Version
·         MS Dot Net Framework 2.0
·         MS Dot Net Framework 3.0
·         MS Dot Net Framework 3.5
·         MS Dot Net Framework Full 4.0
Same
Same
Same
4
QTP Version
Qtp 11 Demo
Qtp 11 Demo
Qtp 11 Demo
Qtp 11 Demo
5
Net Advantage Version
12.2
12.2
12.2
12.2
6
Test Advantage
No
12.2  Demo
12.2 Demo
No
7
Object Identification For Current app ( 3.0 ) using  QTP 11.0
Yes
Yes
Yes
Yes
8
Object Identification For New app (1.0)  using QTP 11.0
No
Yes
Yes
No
















Now I chose Qtp 11 as we had our scripts integrated with QC.But  Qtp 11.0 was not able to recognize any objects on the application .

After slogging for 3 days , here are the solutions :-)

Solution 1 :
 
1.Install Qtp 11 , along with dot Net addins (at the start of qtp installation  , installer asks whether to install  .net addin)
2. Install Infragistics Test advantage 12.2 (Demo is free of cost ). (Doing this  triggers the part of Qtp brain which handles DotNet to start working).You can disable infragistics(Desktop>Start>Infragistics) in version settings.
3.Once you have installed go to/ Documents and Settings and search for "Sample" , infragistics provides you with sample DotNet app to test .Try working on it .Qtp should be able to recognize , now start testing on your app.


Solution 2:
1.Install Patch QTP_00699
2.Here unpacking takes more time and looks similar to installation and sometimes installation will overlap unpacking.If is asks "Another installation is in process do you want to continue " Press Yes. I had mistaken this part and paid huge price.
3.Install Patch QTP_00709. (Your qtp will start to identify objects as Winobjects in record mode )
4.Install Patch Qtpnet_0051

Now your Qtp should be able to record objects in good old  " Swf " fashion .


Note :All the patches mentioned above comes with QTP 11 ,yeah that's right even with Demo version.