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中的内容对比一下,就可以知道你的查询结果的正确与否了;

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

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

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

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


本文转自hcy's workbench博客园博客,原文链接:http://www.cnblogs.com/alterhu/archive/2012/05/30/2526000.html ,如需转载请自行联系原作者。

目录
相关文章
|
2天前
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
11 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
7天前
|
Java Maven
Maven 项目测试
接下来我们要学习如何构建和测试这个项目。
18 5
|
28天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
122 3
快速上手|HTTP 接口功能自动化测试
|
10天前
|
JavaScript
vue尚品汇商城项目-day07【55.编码测试与打包发布项目】
vue尚品汇商城项目-day07【55.编码测试与打包发布项目】
20 3
|
1天前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
5 0
|
1月前
|
安全 JavaScript 前端开发
自动化测试的魔法:如何用Python编写你的第一个测试脚本
【8月更文挑战第41天】在软件的世界里,质量是王道。而自动化测试,就像是维护这个王国的骑士,确保我们的软件产品坚不可摧。本文将引导你进入自动化测试的奇妙世界,教你如何使用Python这把强大的魔法杖,编写出能够守护你代码安全的第一道防护咒语。让我们一起开启这场魔法之旅吧!
|
27天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:如何用Selenium和Python打造高效测试脚本
【9月更文挑战第13天】在软件开发的海洋中,自动化测试是那抹不可或缺的亮色。它不仅提升了测试效率,还保障了产品质量。本文将带你领略使用Selenium和Python构建自动化测试脚本的魅力所在,从环境的搭建到脚本的编写,再到问题的排查,每一步都是对软件质量把控的深刻理解和实践。让我们开始这段探索之旅,解锁自动化测试的秘密吧!
20 0
|
2月前
|
持续交付 C# 敏捷开发
“敏捷之道:揭秘WPF项目中的快速迭代与持续交付——从需求管理到自动化测试,打造高效开发流程的全方位指南”
【8月更文挑战第31天】敏捷开发是一种注重快速迭代和持续交付的软件开发方法,通过短周期开发提高产品质量并快速响应变化。本文通过问题解答形式,探讨在Windows Presentation Foundation(WPF)项目中应用敏捷开发的最佳实践,涵盖需求管理、版本控制、自动化测试及持续集成等方面,并通过具体示例代码展示其实施过程,帮助团队提升代码质量和开发效率。
56 0
|
2月前
|
Java Spring UED
Spring框架的异常处理秘籍:打造不败之身的应用!
【8月更文挑战第31天】在软件开发中,异常处理对应用的稳定性和健壮性至关重要。Spring框架提供了一套完善的异常处理机制,包括使用`@ExceptionHandler`注解和配置`@ControllerAdvice`。本文将详细介绍这两种方式,并通过示例代码展示其具体应用。`@ExceptionHandler`可用于控制器类中的方法,处理特定异常;而`@ControllerAdvice`则允许定义全局异常处理器,捕获多个控制器中的异常。
39 0
|
2月前
|
测试技术 持续交付 开发者
自动化测试之美:从零开始构建Python测试脚本
【8月更文挑战第31天】在软件开发的海洋中,自动化测试是一艘能够引领我们高效航行的帆船。本文将带领读者踏上一段探索性旅程,深入浅出地介绍如何使用Python语言编写自动化测试脚本。从搭建测试环境到编写实用测试案例,我们将一步步解锁软件测试的秘密,确保代码质量和项目成功。让我们启航吧!