你所知道的Hessian接口测试方法已经过时了
- 2018-03-13 17:18:00
- Peggy 原创
- 5581
童鞋们好,前面我们讲过了HTTP接口的自动化测试,今天的话题是,hessian接口的测试与自动化。下面请听我慢慢道来吧~
我们抛弃了传统的测试方法
大家印象中的hessian接口测试是怎样的呢?
首先,开发人员需要将接口的url、以及包含接口服务的项目jar包,提供给测试人员;
然后,测试人员用eclipse编写接口junit测试代码,一般是一个用例写一个testcase;
最后,终于到了测试执行环节,测试人员通过执行上面编写的testcase测试代码,来检查接口返回信息。
这种做法,用来测试简单的接口是很方便的,但如果是一个复杂的业务接口,测试代码量将会很大,而且测试用例的维护和管理也很不方便。
于是,我们决定抛弃这种费时费力的方法,结合LuckyFrame测试平台进行了优化改进。改进之后,我们的测试流程是这样的:
第一步,开发人员提供接口的url、以及接口服务jar包,这一步跟传统的测试方法一样;
第二步,同样是编写测试代码,但跟传统方法不同的是,我们只需要针对每个接口编写一个测试DEMO,省去了繁重的测试代码量;
第三步,在平台上进行测试用例、测试计划、以及调度任务的维护和管理,可实现批量、定时执行测试任务。
结果不言而喻,我们不仅节省了大量编写测试代码的时间和精力,同时还一步到位,实现了接口测试的自动化。不用多说,大家也知道该如何选择啦~
终于开始进入正题
用过LuckyFrame的童鞋们知道,我们是基于协议模板来创建HTTP接口测试用例的,同样地,hessian接口用例也要基于一个测试DEMO来创建。
而与HTTP接口协议模板不同的是,hessian接口的测试DEMO,不是直接在平台进行配置,而是需要我们手动编写的、基于java的接口测试代码。
那么,如何编写我们的测试DEMO呢?下面简单举例说明:
第一步,打开eclipse,新建一个测试项目,导入需要引用的jar包。
导入引用jar包的方法:右键项目名称,选择菜单“Builde Path->Configure Builde Path”,在“Library”标签页导入jar包。如果是Maven项目,直接在pom.xml中添加jar包依赖即可。
注意:测试hessian接口必须引用到的JAR包包括:
1. Hessian.jar:利用其封装的HessianProxyFactory调用远程接口
2. 接口服务jar包:提供接口服务,实现接口处理和返回客户端
第二步,开始编写代码。
这里假设我们有一个接口,客户端带参数姓名向接口请求,接口返回个人信息。于是,我们的测试代码如下所示:
注意:在上面的方法中,我们将接口的返回信息进行了转换处理,是因为在LuckyFrame测试平台,目前只支持对String类型的预期结果进行匹配比较
有了测试DEMO后,接下来就可以创建我们的测试用例了。
登录LuckyFrame平台,进入“UTP->用例管理”页面创建用例,用例步骤的填写格式,跟HTTP接口也不一样:
“包 | 定位路径”中输入测试DEMO的类路径,填写格式为“包路径.类名”。例如:包路径为com.testClinet,类名为HessianClient,则此处填写“com.testClinet.HessianClient”
“方法 | 操作”中输入测试DEMO的方法名,如上面例子中的getUserInfo
“参数”输入接口请求参数,如上面的例子,我们可以在这里输入“张三”,表示向接口请求获取张三的年龄信息
“步骤动作”一般留空,也可以“n#Wait”的格式输入,表示执行此步骤后等待n秒
“预期结果”处输入我们期望的接口回执信息
有时在创建用例步骤时,可以用到一些辅助技巧:
1.“预期结果”希望模糊匹配的时候,该处可以“%=预期结果关键信息”的格式来填写
2. 希望将步骤的预期结果保存到变量中,并在后面的某个步骤中引用其值,我们可以这样做:在步骤的预期结果处,以“$=变量名”的格式填写,表示将该步骤的返回值保存到一个变量中,变量名可自定义;在后面希望传入该参数的步骤中,以“@变量名”的格式表示引用该变量值。
接口用例创建好后,就只需要再为其创建一个测试计划和调度任务,之后就可以放心大胆地交给平台,来帮我们批量执行测试任务咯。
最后再教大家一招
进行到这里,童鞋们肯定已经学会利用LuckyFrame来做hessian接口自动化了吧。是不是已经跃跃欲试了呢?别着急,在开始试之前,再来教大家实用的一招。
接口用例创建好了,我们希望能在执行测试前,验证一下用例的有效性,可以在本地环境先进行调试。
由于LuckyFrameClient自己封装了本地调试用例的方法,我们可以在自己的测试项目里直接调用,方法所在类路径为luckyclient.caserun.exinterface.ApiTestCaseDebug。
举例说明如下:
在测试项目中,新建一个测试类TestCasesLocalRun ,直接在main方法里调用方法执行即可。
学会了这招后,大家就放心大胆地去试验一番吧。那么,今天的话题就到此结束啦!再次感谢大家的阅读!下次,我们来聊聊UI自动化那些事儿,请大家期待哦~
本站文章以及相关内容除注明 转贴外,均为本站 原创或 翻译。
如果本站转载的文章涉嫌侵犯了您的权益,请在评论区留言或是邮件联系管理员及时删除 【admin@luckyframe.cn】
本站原创或是翻译的文章欢迎任何形式转载,但请务必 注明出处以及链接,尊重他人劳动成果,拒绝剽窃从你做起。