frisby用例动态链
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用例动态链相关推荐
- 动态链接到MFC的DLL(转)
在讨论关于动态链接到MFC的DLL的模块状态问题之前,先来看一个例子.本例可以通过如下步骤来完成: 1)在VC菜单中File->New新建一个命名为DLLShared的MFC AppWizard ...
- 全国首例区块链公证书亮相,背后公司深安科技已获数千万元天使融资...
消息,据中央电视台一套(CCTV-1)4月19日晚间新闻报道:全国首例公证书在北京市中信公证处开出.使用,公证服务正式进入区块链时代. (中央电视台一套晚间新闻重点报道全国首例区块链公证书开出) 据了 ...
- php动态链入,利用php的动态链接,增加搜索引擎的蜘蛛爬行速度,规则嵌入ElasticSearch泛目录...
标签:宽度 sqlyog lips 改变 获取 navicat 安装使用 集成 特定 前言 最近项目上需要用到搜索引擎,由于之前自己没有了解过,所以整理了一下搜索引擎的 ...
- 区块链民生应用两三例——趣链谈让技术有温度
文丨互链脉搏·黑珍珠号 未经授权,不得转载! 据10月25日新华社报道,我国在区块链领域拥有良好基础,要加快推动区块链技术和产业创新发展,积极推进区块链和经济社会融合发展.鼓励探索"区块链+ ...
- 美国在线购物公司Overstock完成世界首例区块链股票交易
小龙女 区块链前沿实验室专栏作者 新闻概要 12月16日,美国在线购物公司 Overstock 在区块链上成功出售了公司的 126565 股份,成为世界首家在区块链上进行股票交易的公司. 该公司用两年 ...
- linux下c代码调用.so,Linux下C程序调用.so(动态链)的一个例子
/********************************************** * 使用Linux下C++的动态链接库.So文件 * void *pdlHandle; * pdlHan ...
- 两例司法实践撕开了一个口子,区块链应用落地会加速吗?
-------- 作者:刘学习 在铺天盖地的区块链热潮中,公众更期待的其实是区块链如何改变我们的社会和生活,也就是区块链应用怎么真正的落地.那么,区块链应用落地的障碍在哪儿呢?如何克服这些路障,让区块 ...
- 区块链技术改进身份和访问管理(IAM)的10种用例
分布式账本有可能彻底改变身份管理领域.从提高隐私到提高可见性.本文展示了区块链技术在身份识别与访问管理中的10种用例. 链集市 · 让区块链落地更简单 作者丨Jessica Groopman 图片丨来 ...
- 区块链+公证掀起落地潮,上海再添一例
作者:邱祥宇 1月17日,上海市徐汇公证处发布"汇存"区块链电子数据存储平台,该平台由上海市徐汇公证处与北京众享比特于2019年12月合作开发完成.平台具有随时随地留存照片.视频等 ...
最新文章
- C++:名字空间的使用
- 利用sendEmail-v1.55转发邮件
- 人本质要好,要善良,要真诚,有格局和胸怀,有能力,有眼光,能讲故事,能找到人,能搞到钱...
- 001_Spring Data JPA
- BigInteger用法-Java大数据存储、运算
- 【转】批量删除redis中的key
- java字节码提取if语句_终于找到了!有了它你就可以读懂字节码了!
- mysql多副本搭建_一个简单的MySQL多实例环境搭建
- 漫画:程序员真是太太太太太有趣了!
- 属于attribute还是property。
- 计算机系统应用系统,计算机系统应用.pdf
- 和慧眼显示服务器网关错误,R680G7联想万全慧眼IV高级版用户指南2.pdf
- 含HTML标记的内容分页 (C#)
- Linux “身陷囹圄”?
- android用sax解析xml,详解android使用SAX解析XML文件
- linux中grep命令 菜鸟教程,Linux 常用命令学习 | 菜鸟教程
- jQuery-获取验证码
- 数据结构-图的应用-最小生成树(类C语言版)
- 嵌入式通过序列号加密总结及flash…
- 【WordPress】视频有声音无图像
热门文章
- cuda Device Management
- Java Servlet cookie
- 函数编程(Functional programming)
- SQL数据层面操作(DML)
- RVC使用指南(二)-集群管理
- 内容库-管理介质和模板的最佳办法(转)
- Spring Boot学习总结(8)——SpringBoot Common application properties(application.properties)详解
- php修改linux文件权限设置,linux怎么给文件设置权限
- 一个基本的spring+mybatis所需要的包
- 用户不在sudoers文件中,需要使用命令 sudo npm install 的解决方法