1 Star 0 Fork 19

焱燚 / restful-tester

forked from zzq0324 / restful-tester 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

#restful-tester

##项目说明     目前大部分的restful接口测试工具,仅仅停留在验证接口响应是否正常,具体的业务是否正确需要靠人工来分析。人工分析势必比较耗时,而且随着项目的迭代,重复工作量的浪费比较严重。因此,考虑到接口的变动会较少,自动化接口测试将很有必要。

##项目技术实现

  • 采用HttpClient实现接口的调用,支持GET/PUT/POST/DELETE方式,支持目前Restful接口规范常用的Http方法;
  • 自动化脚本的编写采用Cucumber来实现,脚本编写的时候分为Feature、Scenario以及Step。每个Feature下可以包含N个场景,每个场景下有M个步骤,和实际测试中的测试用例场景贴近;
  • 结果验证采用Javascript Engine,由于Javascript支持弱语言,因此在处理上兼容性会更好,具体代码如下:
public class ExecuteEngine {

    private static ScriptEngineManager ENGIEN_FACTORY = new ScriptEngineManager();
    private static ScriptEngine        JS_ENGINE      = ENGIEN_FACTORY
            .getEngineByName("JavaScript");

    public static Boolean execute(String expression) throws Exception {
        String parseExpression = ExpressionParser.parse(expression).toString();
        Boolean result = (Boolean) JS_ENGINE.eval(parseExpression);

        return result;
    }

}

##脚本编写说明

  • 在src/main/resources目录下增加org/simplestudio/restful/模块名称的目录,其中模块名称为具体要测试的业务模块,比如备忘模块,审批模块;
  • 在新增的目录下,以模块名称为文件名称,增加.properties文件,里面配置好测试的接口url以及变量(如果有需要的话);
  • 在新增的目录下,增加.feature的文件,文件的规范参照Cucumber官方的说明。具体本框架支持的Step详见Step说明;

##支持的Step说明

  • Given 使用用户名=[xxx]登录系统
  • 采用[POST]方式请求URL[http://www.baidu.com],不传参数,不记录返回值
  • 采用[PUT]方式请求URL[xxx],不记录返回值
  • 采用[GET]方式请求URL[xxx],不传参数,并记录返回值为[xxx]
  • 采用[PUT]方式请求URL[xxx],并记录返回值为[xxx]
  • 打印结果,打印的记录值为[xxx]
  • 进行结果校验,表达式为[xxx]

##例子 ###common.properties

#模块名称,名称需要和feature的文件目录结构保持一致
moduleName=kuaidi100

#要执行的feature顺序,同个feature可以多次执行,多个以逗号隔开。不配置按照cucumber默认的解析顺序执行
run.feature.orderlist=快递100接口测试

#增加的plugin列表,多个以逗号隔开.默认会强制生成excel的报告
add.plugin.list=html:target/html

###kuaidi01.properties 快递ID=700259627563 快递类型=yuantong 查询存在的快递=http://www.kuaidi100.com/query?type=${快递类型}&postid=${快递ID}&id=1&valicode=&temp=0.7655106628875419 查询不存在的快递=http://www.kuaidi100.com/query?type=${快递类型}&postid=100259627562&id=1&valicode=&temp=0.7655106628875419

####kuaidi01.feature ` Feature: 快递100接口测试

Scenario: 查询-正常情况
	When 采用[GET]方式请求URL[${查询存在的快递}],不传参数,并记录返回值为[快递信息]
	Then 进行结果校验,表达式为[${快递信息.status} == 200]
	Then 进行结果校验,表达式为[${快递信息.message} == 'ok']
	Then 进行结果校验,表达式为[${快递信息.nu} == 700259627563]
	
Scenario: 查询-异常情况
	When 采用[GET]方式请求URL[${查询不存在的快递}],不传参数,并记录返回值为[快递信息]
	Then 进行结果校验,表达式为[${快递信息.status} == 201]
	Then 进行结果校验,表达式为[${快递信息.message} == '快递公司参数异常:单号不存在或者已经过期']

`

##运行结果 运行结果

空文件

简介

restful接口的测试工具,可用于验证业务的准确性。 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/873965057/restful-tester.git
git@gitee.com:873965057/restful-tester.git
873965057
restful-tester
restful-tester
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891