frisby是一个nodejs的rest api测试框架。一般来讲,因为nodejs是众所周知的异步编程模式,api以.after()方法一步步走:

frisby.create('login').get('http://httpbin.org/login',{usernmae:xxx,password:xxx})after(function(err, res, body) {frisby.create('logout').get('http://httpbin.org/logout').toss()});
.toss()

在一些较为复杂的测试流程中,需要根据上一部的返回动态决定下一步需要做什么。比如:

frisby.create('login').get('http://httpbin.org/login',{usernmae:xxx,password:xxx})afterJSON(function(rsp) {if(rsp.ok){frisby.create('logout').get('http://httpbin.org/logout').toss()}else{frisby.create('login again').get('http://httpbin.org/login',{username:xxx,password:xxxx}).toss()}});
.toss()

上面的例子,如果第二个frisby toss的时候还有更多的after操作,代码会非常难组织。为此写了一个简单的pipeLine函数用于将多个frisby串起来。

function toss(f, msg){return function(){//console.log('toss ' + msg);
        f.toss();}
}//frisby.after() just add a function to array and invoke them when .toss()
function pipeLine(works){for(var i = 0; i < works.length - 1; i++){works[i].after(toss(works[i+1], ''+(i+1)));}return works[0];
}var testsPipline = function() {var f1 = frisby.create('test 1').get('http://192.168.5.120:8080/static/3ef9f60c/images/title.png');var f2 = frisby.create('test 2').get('http://192.168.5.120:8080/static/3ef9f60c/images/title.png');var f3 = frisby.create('test 3').get('http://192.168.5.120:8080/static/3ef9f60c/images/title.png');toss(pipeLine([f1, f2, f3]), 0)();toss(pipeLine([f2,f3]), 0)();
}

可以很方便的重用预定义的frisby测试过程。

转载于:https://www.cnblogs.com/jan4984/p/4500753.html

frisby用例动态链相关推荐

  1. 动态链接到MFC的DLL(转)

    在讨论关于动态链接到MFC的DLL的模块状态问题之前,先来看一个例子.本例可以通过如下步骤来完成: 1)在VC菜单中File->New新建一个命名为DLLShared的MFC AppWizard ...

  2. 全国首例区块链公证书亮相,背后公司深安科技已获数千万元天使融资...

    消息,据中央电视台一套(CCTV-1)4月19日晚间新闻报道:全国首例公证书在北京市中信公证处开出.使用,公证服务正式进入区块链时代. (中央电视台一套晚间新闻重点报道全国首例区块链公证书开出) 据了 ...

  3. php动态链入,利用php的动态链接,增加搜索引擎的蜘蛛爬行速度,规则嵌入ElasticSearch泛目录...

    标签:宽度   sqlyog   lips   改变   获取   navicat   安装使用   集成   特定 前言 最近项目上需要用到搜索引擎,由于之前自己没有了解过,所以整理了一下搜索引擎的 ...

  4. 区块链民生应用两三例——趣链谈让技术有温度

    文丨互链脉搏·黑珍珠号 未经授权,不得转载! 据10月25日新华社报道,我国在区块链领域拥有良好基础,要加快推动区块链技术和产业创新发展,积极推进区块链和经济社会融合发展.鼓励探索"区块链+ ...

  5. 美国在线购物公司Overstock完成世界首例区块链股票交易

    小龙女 区块链前沿实验室专栏作者 新闻概要 12月16日,美国在线购物公司 Overstock 在区块链上成功出售了公司的 126565 股份,成为世界首家在区块链上进行股票交易的公司. 该公司用两年 ...

  6. linux下c代码调用.so,Linux下C程序调用.so(动态链)的一个例子

    /********************************************** * 使用Linux下C++的动态链接库.So文件 * void *pdlHandle; * pdlHan ...

  7. 两例司法实践撕开了一个口子,区块链应用落地会加速吗?

    -------- 作者:刘学习 在铺天盖地的区块链热潮中,公众更期待的其实是区块链如何改变我们的社会和生活,也就是区块链应用怎么真正的落地.那么,区块链应用落地的障碍在哪儿呢?如何克服这些路障,让区块 ...

  8. 区块链技术改进身份和访问管理(IAM)的10种用例

    分布式账本有可能彻底改变身份管理领域.从提高隐私到提高可见性.本文展示了区块链技术在身份识别与访问管理中的10种用例. 链集市 · 让区块链落地更简单 作者丨Jessica Groopman 图片丨来 ...

  9. 区块链+公证掀起落地潮,上海再添一例

    作者:邱祥宇 1月17日,上海市徐汇公证处发布"汇存"区块链电子数据存储平台,该平台由上海市徐汇公证处与北京众享比特于2019年12月合作开发完成.平台具有随时随地留存照片.视频等 ...

最新文章

  1. C++:名字空间的使用
  2. 利用sendEmail-v1.55转发邮件
  3. 人本质要好,要善良,要真诚,有格局和胸怀,有能力,有眼光,能讲故事,能找到人,能搞到钱...
  4. 001_Spring Data JPA
  5. BigInteger用法-Java大数据存储、运算
  6. 【转】批量删除redis中的key
  7. java字节码提取if语句_终于找到了!有了它你就可以读懂字节码了!
  8. mysql多副本搭建_一个简单的MySQL多实例环境搭建
  9. 漫画:程序员真是太太太太太有趣了!
  10. 属于attribute还是property。
  11. 计算机系统应用系统,计算机系统应用.pdf
  12. 和慧眼显示服务器网关错误,R680G7联想万全慧眼IV高级版用户指南2.pdf
  13. 含HTML标记的内容分页 (C#)
  14. Linux “身陷囹圄”?
  15. android用sax解析xml,详解android使用SAX解析XML文件
  16. linux中grep命令 菜鸟教程,Linux 常用命令学习 | 菜鸟教程
  17. jQuery-获取验证码
  18. 数据结构-图的应用-最小生成树(类C语言版)
  19. 嵌入式通过序列号加密总结及flash…
  20. 【WordPress】视频有声音无图像

热门文章

  1. cuda Device Management
  2. Java Servlet cookie
  3. 函数编程(Functional programming)
  4. SQL数据层面操作(DML)
  5. RVC使用指南(二)-集群管理
  6. 内容库-管理介质和模板的最佳办法(转)
  7. Spring Boot学习总结(8)——SpringBoot Common application properties(application.properties)详解
  8. php修改linux文件权限设置,linux怎么给文件设置权限
  9. 一个基本的spring+mybatis所需要的包
  10. 用户不在sudoers文件中,需要使用命令 sudo npm install 的解决方法