JavaScript restful API 单元测试框架 HttpRunnerJS

HttpRunnerJS

JavaScript restful API 单元测试框架

recommend: China-GiteeOther-Github

支持http、https、socket、websocket协议

一、安装

npm install

客户端

请求脚本示例

client-http.js

it("GET The second format", () => {
        // Mocking a GET request
        Mock.onGet("/users", { params: { searchText: "John" } }).reply(200, {
            users: [{ id: 1, name: "John Smith" }],
        });
        // send a GET request
        axios({
            "url": "/users",
            "method": "get",
            "params": { searchText: "John" }
        }).then(response => {
            console.log(response.data);// 获取响应体
        }).catch(err => {
           console.error(err)
        })
    })

img

client-websocket.js

        client.on('connect', function (connection) {
            // websocket 客户端连接成功后
            console.log('WebSocket Client Connected');
            // websocket 客户端发生错误时
            connection.on('error', function (error) {
                console.log("Connection Error: " + error.toString());
            });
            // websocket 客户端连接关闭后
            connection.on('close', function () {
                console.log('echo-protocol Connection Closed');
            });
            // websocket 客户端连接关闭后
            connection.on('message', function (message) {
                if (message.type === 'utf8') {
                    console.log("Received: '" + message.utf8Data + "'");
                }
            });
            function sendNumber() {
                if (connection.connected) {
                    var number = Math.round(Math.random() * 0xFFFFFF);
                    connection.sendUTF(number.toString());
                    setTimeout(sendNumber, 1000);
                }
            }
            sendNumber();
        });
        // 客户端发起websocket请求
        client.connect('ws://localhost:8080/', 'echo-protocol');
  • 配合client-websocket.js示例,启动本地websocket服务
node server/server-websocket.js

img

client-socket.js

 it("socket emit", () => {
        var socket = require('socket.io-client')('http://127.0.0.1:4004/');
        // 发生连接时
        socket.on('connect', ()=>{
                console.log("connect sever success")
        });
        // 客户端触发服务端event事件
        socket.emit('Client2Server', '这是发送给服务端的数据',()=>{// 触发事件
           console.log("客户端把数据发给服务端");
        });
         // 绑定event事件
        socket.on('Server2Client', (data)=>{// 绑定事件
            console.log(`服务端把处理后的数据,传递给客户端,内容是:${data}`);
        });
        // 发生连接错误时
        socket.on('disconnect', ()=>{
            console.log(`disconnect`);
        });

    })
  • 配合client-socket.js示例,启动本地socket服务
node server/server-socket.js

客户端 img 服务端 img

二、运行脚本

(一) 运行指定脚本

命令行执行

http client request

./node_modules/.bin/mocha test/client-http.js --reporter mochawesome

socket client request

./node_modules/.bin/mocha  test/client-socket.js --reporter mochawesome

websocket client request

./node_modules/.bin/mocha  test/client-websocket.js --reporter mochawesome

(二) 生成不同格式测试报告

html、json

npm run mochawesome

img xml

npm run junit

img

allure

npm run allure

img

progress

npm run progress

img

mocha 单元测试框架

mocha是JavaScript 单元测试框架,相当于Java Junit、testNG

参数名功能
--recursive执行除test直接目录下所有test文件
--reporter输出报告类型,类型:mochawesome、dot、spec、tap、mocha-junit-reporter、
--watch监控模式/常用于调试脚本
--timeout超时设置毫秒 例如:--timeout 6000000
--bail失败后中断
--growl将测试结果在桌面显示
--grep用于搜索测试用例的名称(即it块的第一个参数),然后只执行匹配的测试用例

技术栈

axios、mock、chalk、lowdb、socket.IO、websocket

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Rabbit.js 的定位是一个超轻量的快速开发框架。Light and Fast。你甚至很快就可以理解它的底层实现(也许只需要5分钟)。Rabbit.js本身的代码量并不大,这得益于很多NodeJS开源库的支持,通过 一些有效的组合,成为这样一个简单而清晰的开发框架。 Rabbit.js 能够提供一个清晰的开发思路,让你的应用逻辑清晰并且足够结构化,但是同时又不会增加你的开发复杂度,相反,复杂度被降低,因为在逻辑分层的过程中对很多操作做了封装,你要做的就是关注自己需要关注的逻辑代码,而不用关心框架本身。 Rabbit.js 是一个依靠约定和封装进行工作的框架,秉承约定大于配置的快速开发理念,高度自动化,提高开发效率。不过可能因此降低了一些灵活性,但是本框架的定位决定 其使用场景,Rabbit.js比较适合于中小型项目或者个人项目,得益于其快速开发的特点,可以快速搭建restfull的网络服务。 特色 清晰的应用分层,可以帮助您构建大型的应用,具体见章节“分层” 约定大于配置,基本无需配置,即可开始开发之旅。 约定大于配置,团队合作写出来的应用代码基本一致,方便统一代码风格。 应用的restful的route完全根据目录结构自动生成,无需自己声明和指定。 controller和view之间拥有自动映射,你在controller里无需指定渲染的view路径。 分层之间不采用跳路径方式应用,而是根据名字寻找,无需关心自己和别的分层中得js得目录结构关系。 将controller层,service层,model层做了抽象封装,大部分通用逻辑都已经默认添加,极大的减少代码量。 对model层做了特别封装,同时支持sql和mongodb,写法完全一样。 model层封装成了promise的写法,让你的数据操作更清晰简介。 功能插件系统,开发中,常用的服务器功能一句话引入,例如用户系统,无需开发。 默认为您配置了一个可用的express服务器。 clone下来,查看文档,立马开始您的开发之旅。 标签:Rabbit  Web框架

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liyinchi1988

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值