该自动化平台分成两部分,web端负责测试用例编写及用例调度等.客户端用于具体执行用例.
客户端和服务器端以及mysql数据库的安装和配置请参考官网
http://www.luckyframe.cn/book/yhsc/syschyy-24.html
1.客户端配置
下载并解压客户端.
检查配置文件sys_config.properties中的服务器端和数据库配置是否正确.
如图所示
然后双击start_service.cmd启动Client端.启动成功界面如下图所示:
出现这个页面,说明client端启动成功.
2.注册客户端
在web端的最下方,点击[系统管理]
然后点击[客户端管理],点击[新增客户端],如图2-2和图2-3所示:
注意:默认的驱动桩路径是/TestDriven,该文件夹是存放自己写的一些驱动文件的,比如对接口返回值做一些特殊判断,那么需要自己写方法实现,然后打包成一个jar包上传到该路径下.若是修改该名称,那么客户端里面的对应目录也要修改成TestDrivenDemo(或者新建一个空文件夹TestDrivenDemo).如下图2-4所示:
首先,编写request模板
点击首页菜单[UDP],选择下拉列表中的[协议模板],点击[新增模板],如图3-1所示
然后选中这个模板,点击[模板参数],将request体添加进来.
编写一条测试用例,选择[用例管理]
选择项目名称和用例集,注意,用例集是树形结构,可以添加\修改和删除,写用例时,尽量将用例放在对应的用例集下,这样当我们的用例达到成百上千条时,在选择需要执行的用例时,方便查找.
根据提示,将必填字段填上,如若是报文是json格式的,post方法,则方法选择的是HttpClientPostJSON类型。
参数若是为空,那么用例执行时,request发送的是我们的协议模板里面设置的数据.若是需要修改模板中的部分数据,那么不同变量间用竖线|分隔:
注意:
1.由于对于同一个服务,不同接口请求的ip和端口号都是固定的.而且一套测试用例要在fat环境和生产环境都使用,因此我们可以将不同用例中公共的部分抽取成变量,在公共参数这里设置一下,然后用例中通过@var_name来引用. 如:@test_url/接口名称
2.对用例返回值的断言(assertion),我们先选择不自己写判断方法,用平台提供的方式.平台提供了两种方法,一种是完全匹配,方法是直接将期望的返回值填写到预期结果(一般这种方法用不上,因为有些response中是有时间返回的,每次执行用例返回值都不同),若是选择模糊匹配,则格式为%=期望值.
至此,用例需要的配置就写好了,点击[保存],可以点击调试按钮,点击运行,选择自己的客户端,和驱动桩路径(注意,这时,我们的TestDrivenDemo里面是空的,因为我们这条用例没有自己写对返回的response做特殊处理)
若是有报错,则查看报错原因,修改用例.
使用中我们会发现,该平台对接口返回报文的处理有些简单,只能做些简单的模糊匹配或精确匹配,无法满足我们在工作中的使用场景。但是该工具也提供了自己写方法来对response报文进行判断的功能。
下面是怎么自己写方法,对response返回值做处理
平台支持java或者python两种方式来自己写方法,根据业务需要,对接口的返回值做校验.比如,用java写一个方法,将response中特定的值取出来,然后看下是否和我们的期望值一致.
本例中,我们将response中的ResponseStatus中的Ack取出来,看是否等于Success
a 编写测试方法并打成jar包
假设我们自己编写的方法如下:
打包略
b. 上传jar包
上传jar包到TestDrivenDemo目录下.点击首页菜单UDP,选择[调度配置],选择[上传JAR]
新增测试用例步骤,调用方法
第一步,将response返回值存储到变量responseResult中
第二步,用自己写的getValueString方法将responseResult中的responseStatus中的所有数据取出来存储到responseStatus变量中
第三步, 用自己写的getValueString方法将Ack的值取出来,并设置期望结果为精确匹配,期望值是Success
c 调试测试用例
点击[调试],注意选择正确的客户端和驱动桩所在的路径.选择执行.
执行成功,本条用例编写结束.
首先新增一条测试计划
选择计划用例,如下图所示,点击[保存选项]:
然后,点击任务调度按钮,新增调度
这样,定时调度执行测试计划就配置好了.可以设置非工作时间执行.上班时间查看执行结果.该工具也执行将测试结果发送到指定邮箱.
参考文档:
http://www.luckyframe.cn/allwz/jsoncs-77.html
http://www.luckyframe.cn/allwz/lfpyqd-76.html
http://www.luckyframe.cn/allwz/httpcs-16.html
http://www.luckyframe.cn/book/yhsc/csqdsm-31.html