QTP的那些事终极项目脚本设计思路及其测试查询功能的一些实际项目体会

1,采用importdatable将外部的excel数据加载到对应的datatable中;

2,实际项目中可能不会让我们去设置数据库的检查点来校验数据,而且校验的数据比较复杂,就拿我们基本的手工测试来说。我们在测试查询条件的时候也是不去考虑数据库底层的查询结果的,我们关注的仅是查询的结果中有没有查询到结果,查询的结果中有没有我们的查询条件中的值;

3,针对以上情况,涉及思路如下:

3.1 所有的查询条件设计成相当于MVC模式 中的VO层,也就是我们的输入层数据,然后将对应的录制的查询脚本都参数化为我们datatable中对应的字段;

3.2 判断检查查询的实际结果,实际结果我这里就没有坐那边复杂的处理,就简单的是做了一个判断,如下:

思路其实很简单,就是得到对应的webtable中的innnertext属性中所有的文本查询结果,然后再获取datatable中所有的查询条件,将所有的查询条件与innertext中内容比较一下,查看是否有对应的数据,如果有的话,那么就写上我们的实际的测试结果(查询到数据),如果没有查询到数据就写上(没有结果)。

  这里的判断结果只存在两种情况,其他的复杂的情况没有考虑。

            Browser(“browser").Page(“page").Sync
            '得到实际的测试执行结果
            set listtab=Browser(“browser").Page(“page").Frame("frmae").WebTable("合计")
            writerow=datatable.LocalSheet.GetCurrentRow+1
            If listtab.Exist(1) Then
                listresult=listtab.GetROProperty("innertext")
            End If
            print "当前的行"&writerow
             If listtab.Exist(10) Then                    
                            For index=1 to datatable.LocalSheet.GetParameterCount
                                 indexres=datatable.LocalSheet.GetParameter(index)     '获得对应的参数数据
                                  if instr(1,listresult,indexres,1)>0 then
                                      datatable.LocalSheet.GetParameter("实际结果").Value="查询到结果"
                                    '写到excel中结果
                                    'writeExcelDatas(filename, sheetindex, x, y, values)
                                      writeExcelDatas "result",1,writerow,20,"查询到结果"
            
                                  else
                                     datatable.LocalSheet.GetParameter("实际结果").Value="没有结果"
                                      writeExcelDatas "result",1,writerow,20,"没有结果"
                                  end if
                            Next
                 else
                           datatable.LocalSheet.GetParameter("实际结果").Value="没有结果"
                           writeExcelDatas "result",1,writerow,20,"没有结果"
                 End If

                 '执行测试结果,预期值与实际值的比较
                expectvalue=trim(datatable.LocalSheet.GetParameter("期望结果"))
                actualvalue=trim(datatable.LocalSheet.GetParameter("实际结果").RawValue)
                
                If expectvalue=actualvalue Then
                         datatable.LocalSheet.GetParameter("测试结果").Value="PASS"            
                         writeExcelDatas "result",1,writerow,21,"PASS"
                else
                        datatable.LocalSheet.GetParameter("测试结果").Value="Failed"
                         writeExcelDatas "result",1,writerow,21,"Failed"
                End If
                '执行用例结束后的通知。。。
                If datatable.GetCurrentRow=runiteration Then
                    reportProgress "当前action用例执行完毕.....",5
                End If

11

小结一下:

(我觉得用QTP设计自动化脚本的时候,首先要考虑的是这个模块相当于是增删改查中的那个模块,然后再针对不同模块进行相关的处理)

1,其实所有的自动化脚本来说,跟开发一样的概念,对于增删改查这些功能模块,及其流程操作来说。

1.1 QTP做的最好的就是增,保存一条信息的功能,这个可以用于流程操作或者是针对系统测试入手的时候,进行系统环境的数据准备工作;

1.2 QTP支持的对应删,改这些操作其实跟增的功能差不多,也是比较的容易;

1.3 然后就是查的模块:

我对于这个模块很是纠结,想到了许多种处理的方式。下面主要介绍针对于查询功能数据的一些测试方法:

我将查询模块的功能分成了两种形式,一种是联动数据的信息查询,一种就是直接从数据库中校验数据的查询;

先说第一种:

联动数据的信息查询

意思就是这里的查询数据的结果,我们可以通过后台的数据库查询到对应的数据,但是我们也可以通过在系统的其他模块查询到该对应的数据是否正确与否;

对于这种情况,我的考虑是你从别的地方将所对应的数据先取出来,放到excel或者是txt文件中,最好是txt,excel读取文件中速度还是很慢的,比较麻烦在查询的将对应查询结果与你放在excel或者是txt中的内容对比一下,就可以知道你的查询结果的正确与否了;

直接从数据库中校验数据的查询

 意思就是这里的查询数据不依赖与其他的模块中数据,是完完全全从数据库中对应的表查询到的;

对于这种情况,我的考虑就是按照上面的方式进行操作;

上面设计的这种查询方式,有些缺点就是查询时候如果数据比较多,就脚本校验的比较的慢。关于这个问题,我会在后续中进行解决。。。。暂时先不进行处理。

原文地址:https://www.cnblogs.com/seniortestingdev/p/2526000.html