frisby.js-接口测试基础知识

一、安装环境

1.先更新yum语言

curl -sL https://rpm.nodesource.com/setup | bash -

2.安装nodejs yum install -y nodejs

3.jasmine
npm install -g jasmine-node

4.frisby
npm install--save-dev frisby

二、运行脚本 test_spec.js

jasmine-node  test_spec.js

三、生成XML报告

jasmine-node test_spec.js --junitreport

四、常用的Expectations

1.expectStatus( code )   响应返回的HTTP状态码等于code

2.expectHeader( key, content )  期望的头信息  精确的

例如:

frisby.create(‘Ensure response has a proper JSON Content-Type header‘)

  .get(‘http://httpbin.org/get‘)

  .expectHeader(‘Content-Type‘, ‘application/json‘)

.toss();

3.expectHeaderContains( key, content ) 期望的头信息   不精确的

例如:

frisby.create(‘Ensure response has a proper JSON Content-Type header‘)

  .get(‘http://httpbin.org/get‘)

  .expectHeader(‘Content-Type‘, ‘json‘)

.toss();

4.expectHeaderToMatch( key, patterm )  期望的头信息,使用正则表达式匹配的

例如:


frisby.create(‘Ensure response has image/something in the Content-Type header‘)

  .get(‘http://httpbin.org/get‘)

  .expectHeaderToMatch(‘Content-Type‘, ‘^image/.+‘)

.toss();

5.expectJSON( [path], json )  期望的JSON

例如:

frisby.create(‘Ensure test has foo and bar‘)

  .get(‘http://httpbin.org/get?foo=bar&bar=baz‘)

  .expectJSON({

    args: {

      foo: ‘bar‘,

      bar: ‘baz‘

    }

  })

.toss()

6.expectJSONTypes( [path], json )  期望json的类型

例如:

frisby.create(‘Ensure response has proper JSON types in specified keys‘)

  .post(‘http://httpbin.org/post‘, {

    arr: [1, 2, 3, 4],

    foo: "bar",

    bar: "baz",

    answer: 42

  })

  .expectJSONTypes(‘args‘, {

    arr: Array,

    foo: String,

    bar: String,

    answer: Number

  })

.toss()

7.expectBodyContains( content )  body内容

8.expectJSONLength( [path], length )  JSON长度

9.expectMaxResponseTime( milliseconds )  最大响应时间

五、path

1.All Objects in an Array
所有的对象都在一个数组内,可用 * 作为path

2.One Object in an Array

一个对象在一个数组内,可以用 ? 作为path

六、Helpers

1.after()

frisby.create(‘First test‘)

  .get(‘http://httpbin.org/get?foo=bar‘)

  .after(function(err, res, body) {

    frisby.create(‘Second test, run after first is completed‘)

      .get(‘http://httpbin.org/get?bar=baz‘)

    .toss()

  })

.toss()

2.afterJSON()  返回的JSON在别的里面使用

frisby.create(‘First test‘)

  .get(‘http://httpbin.org/get?foo=bar‘)

  .afterJSON(function(json) {

  // Now you can use ‘json‘ in additional requests

    frisby.create(‘Second test, run after first is completed‘)

      .get(‘http://httpbin.org/get?bar=‘ + json.args.foo)

    .toss()

  })

.toss()

3.inspectRequest()  发送的请求

详细学习地址:http://frisbyjs.com/docs/api/

时间: 2024-10-03 13:20:03

frisby.js-接口测试基础知识的相关文章

js最基础知识回顾

一.html/css 1. 什么是盒子模型? padding+border+width/height 2. float 浮动 (1)浮动的特性 半脱离文档流 行内变成块  共处一行 能设置宽高 同级元素有浮动,必须全部都浮动 父级宽度不够,子集掉下来 文本环绕  顶对齐 (2)清除浮动? clear:both; clearfix: clear:after{display:block; content:''; clear:both;} clear{zoom:1;} overflow:hidden;

三、Node.js中基础知识

1.控制台console对象的方法: 1) console.log(); //显示一行字符串 2) console.info(); //与1)完全相同 3) console.error(); //标准错误输出流的输出 4) console.warn(); //与3)完全相同 5) console.dir(); //查看一个对象中的内容并将其信息输出到控制台 6) console.time(); //标记开始时间 7) console.timeEnd(); //标记结束时间 8) console.

js学习——基础知识

JavaScript                         //这是注释 a = 1;//简单赋值语句 数据类型                         js有动态类型,也就是相同的变量可用作不同类型(python也是) 数字 Number var x = 5;//只有一种数字类型 var x = 5.0; var x = 5e5; var x = 5e-5; 所有数据都以 64 位浮点型数据存储 字符串 String var x = "5"; 布尔 Boolean

js函数基础知识

//return 返回值.function box(){ alert("记得要调用哦!") }box(); //函数本身没有运行功能,需要调用才可以执行. function box(name,job){ alert("姓名:" + name + "工作:" + job); box(); //调用函数时,如果没有输入里面的参数,这种情况则会输出姓名:undefined工作undefiedbox("123","web前端

js的基础知识

一.js的语法 略 二.BOM对象 BOM是浏览器对象模型,可以对浏览器窗口进行访问和操作.BOM是js和浏览器对话的工具. 1.window对象方法 alert() 显示带有一段消息和一个确认按钮的警告框. confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框. prompt() 显示可提示用户输入的对话框. open() 打开一个新的浏览器窗口或查找一个已命名的窗口. close() 关闭浏览器窗口. setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式

js的基础知识1

1.什么是JavaScript? 是一门基于对象的客户端脚本语言,用来与web页面进行交互 2.web页面三层结构 结构层     表现层    行为层 3.javascript的组成 ECMAScript    (欧洲计算机制造商协会,不是一门语言而是一个组织,用来规范javascript的语法标准) BOM          (浏览器对象模型) DOM            (文档对象模型) 4.javascript实现 通过script标签对实现 通过外部引入实现 5.javascript

js最基础知识回顾2(函数传参,操作属性的第二种方式,提取行间事件,操作一组元素,this,焦点问题和鼠标按下抬起,选项卡)

一.函数传参     1.函数传参:参数就是占位符----函数里定不下来的东西 a. var a1=function(){ alert(123); }; function a(f){ // 相当于 f=a1 f(); }; a(a1); b.  function skip(skipPath){  //换肤 var oLink1 = document.getElementById('link1'); oLink1.href=skipPath; } c.   function setStyle(na

JS(一)基础知识与对象

一.简介 在JS中,一切皆为对象.字符串.数组.函数等都是对象. 二.常见的js功能 /** * 显示对象的属性方法一 * @returns */ function myFunction1(){ person = {firstname:"David",lastname:"Smith",age:30,sex:'男'};//每一个都是一个新对象,属性值可以不固定 //person2 ={...}; printInfo(person); } /** * 显示对象的属性方法

js最基础知识回顾6(数组,JSON,getByClass,select,Math对象)

一.数组的相关操作 1. 定义 (1)var arr=[1,'abc',function(){alert(3333);},[333,444]]; (2)var arr=new Array(12,5,8,9);   如果只放一个数字,要设定length (3)[]的性能略高,因为代码短 2. 属性----length(既可以获取,又可以设置)---例子:快速清空数组 var a=[1,2,3,4,5,6,]; a.length=0; alert(a); (1)如果设置的length多于数组的内容,

js最基础知识回顾6(变量,预解析,引用,索引)

一.变量 1. 作用域:全局.局部.闭包 2. var a=12;   不加var,会变成全局变量. 3. 全局变量:容易重名,影响性能 4. 局部变量和全局变量重名,局部会屏蔽全局. 5. 给window加东西,是全局的.用途:把封闭空间的东西,变成全局. (function(){ window.a=12; alert(a); })() 二.预解析 1. 系统会把所有变量的声明,放在最上面.只是声明到上面,赋值还在原来的位置. 2. 预解析的作用域:不会脱离原本的作用域.函数中,变量放在函数最