当前位置: 首页 > news >正文

网站手机版网站域名怎么转

网站手机版,网站域名怎么转,青岛模板化网站建设,网站站建设1、基本概念——global、collection、environment 在postman中#xff0c;为了更好的管理各类变量、测试环境以及脚本等#xff0c;创建了一些概念#xff0c;包括#xff1a;globals、collection、environment。其实在postman中#xff0c;最上层还有一个Workspaces的概…1、基本概念——global、collection、environment 在postman中为了更好的管理各类变量、测试环境以及脚本等创建了一些概念包括globals、collection、environment。其实在postman中最上层还有一个Workspaces的概念不过大多数情况我们都使用一个workspace这里就不多介绍了。 1.1请求组collection 可以将多个请求保存到一个请求组(Collections)中, 好处是: 增加额外Collection变量作用域, 增加公共的PreRequest和Test脚本, 批量执行Collection下的请求, 定义Collection内请求的顺序。 上图中可以看到左上角“”可以创建新的collection点击collection的右侧“。。。”可以Edit现有collection以及Run、Add folder等功能。 说明Collection下还可以建文件夹对请求进一步划分比如用户模块、订单模块。 1.2环境environment 通常一个系统具备多个环境比如测试、线上。 如上图点击左上角“”可以新建一个environment鼠标指向现有environment点击右侧“。。。”可以进行编辑。值得提醒的是当运行时需要在右上角选中我们想要的环境。 变量有两个value不光是环境变量其他变量也是一样的二者的区别 INITAL_VALUE初始值是在定义变量的元素集合、环境或全局变量中设置的值。此值将同步到 Postman 的服务器并在您共享该元素时与您的团队共享CURRENT_VALUE这些是本地值不会同步到 Postman 的服务器。如果您更改当前值它将不会保留在原始共享集合、环境或全局变量中。 1.3golbal 细心的朋友已经发现在environment中左上角出现了Golbals 2、变量 变量在postman中最常见的一个功能包括设置、读取、作用域等。 2.1变量作用域 postman中变量有多个作用域, 越往内的作用域优先级越高(global collection environment …), 举例来说, 如果global作用域和Environment作用域里都有一个变量叫username, 那么最终使用的是Environment作用域里的变量值。 不同作用域变量设置方法 2.2定义、使用变量 从上面图可以看到在UI界面上可以管理globals变量后面也会降到使用API方式设置、读取globes变量会同步出现在UI界面上同样的对于environment变量也是一样的。如上面1.2和1.3 1通过界面定义变量 选中某个值然后点击弹出的菜单点击Set as new variable 然后这只变量名、和作用域 2管理Collections变量 选择某个Collection后点击右侧的“。。。”然后选择Edit在右侧界面上会显示Variables。 3使用变量 在不同作用域定义好变量后, 然后在某个请求中引用该变量, 从而做到变量复用和统一管理。 使用{{变量名}}来引用变量。 2.3在脚本中操作变量 // 不同作用域设置变量 pm.globals.set(username, golbals_name); pm.globals.set(username1, golbals_name1); pm.collectionVariables.set(username, collection_name); pm.environment.set(username, environment_name); pm.variables.set(username, variable_username); //临时覆盖, 优先级最高, 请求结束后失效// 获取变量值 console.log(pm.globals.get(username)); //从globals作用域中查询变量 console.log(pm.collectionVariables.get(username)); console.log(pm.environment.get(username)); var k pm.variables.get(username1); //依次从各个作用域查找 console.log(username: k);// 判断 pm.variables.has(username); pm.environment.has(username); pm.globals.has(username);// 清理 pm.environment.unset(username); 2.4data作用域的变量 在UI界面上选择Collection的Run在界面中可以选择一个文件 然后准备一个文件内容如下必须是json或者csv格式 [{path: post,value: 1 }, {path: post,value: 2 }, {path: post,value: 3 }, {path: post,value: 4 }] 另外在脚本里访问data文件可以使用如下AIP pm.iterationData.get(value); 3、脚本 postman API文档Home - Postman Documentation 3.1脚本相关概念 1脚本执行顺序 执行每个请求时会依次执行如下脚本: Collection级别的pre-request脚本Folder级别的pre-request脚本Request级别的pre-prequest脚本Request级别的test脚本Folder级别的test脚本Collection级别的test脚本 2在界面上输入脚本信息  最常见的就是request级别的脚本可以在Scripts页签下输入如下 可以看到脚本分两个pre-request和post-reponse分别对应请求前处理和请求后处理。 在Collection级别上也可以创建脚本如下 同样如果在Collection下有folder那么folder上也可以创建scripts。  3.2常用脚本代码 1操作变量 // 设置全局变量 pm.globals.set(variable_key, variable_value); var variable_key pm.globals.get(variable_key);// 获取全局变量 pm.globals.unset(variable_key);// unset 全局变量// 设置环境变量 pm.environment.set(variable_key, variable_value); var variable_key pm.environment.get(variable_key);// 获取环境变量 pm.environment.unset(variable_key);// unset 环境变量// 设置临时变量 pm.variables.set(variable_key, variable_value); var variable_key pm.variables.get(variable_key);// 获取临时变量 pm.variables.unset(variable_key);// unset 临时变量// 将对象或数组非字符串写入环境变量 var array [1, 2, 3, 4]; pm.environment.set(array, JSON.stringify(array)); var obj { a: [1, 2, 3, 4], b: { c: val } }; pm.environment.set(obj, JSON.stringify(obj)); // 转换回来 try {var array JSON.parse(pm.environment.get(array));var obj JSON.parse(pm.environment.get(obj)); } catch (e) {// 处理异常 } 2前置读取/修改接口信息 // URL // 获取 url 对象 var urlObject pm.request.url;// 获取完整接口请求 URL包含 query 参数 var url urlObj.toString();// 获取协议http 或 https var protocol urlObj.protocol;// 获取 端口 var port urlObj.port;// Header // 获取 Header 参数对象 var headers pm.request.headers;// 获取 key 为 field1 的 header 参数的值 var field1 headers.get(field1);// 已键值对象方式获取所有 query 参数 var headersObject headers.toObject();// 遍历整个 query headers.each(item {console.log(item.key); // 输出参数名console.log(item.value); // 输出参数值 });// 增加 header 参数 headers.add({key: field1,value: value1, });// 修改 query 参数如不存在则新增 headers.upsert({key: field2,value: value2, });// Query // 获取 Query 参数对象 var queryParams pm.request.url.query;// 获取 key 为 field1 的 query 参数的值 var field1 queryParams.get(field1);// 已键值对象方式获取所有 query 参数 var quertParamsObject queryParams.toObject();// 遍历整个 query queryParams.each(item {console.log(item.key); // 输出参数名console.log(item.value); // 输出参数值 });// 增加 query 参数 queryParams.add({key: field1,value: value1, });// 修改 query 参数如不存在则新增 queryParams.upsert({key: field2,value: value2, });// Body // Body 参数来自pm.request.bodypm.request.body 是一个RequestBody 实例。 // Body 参数在只能读取不能直接修改。如需修改 Body 里的数据请在 Body 里引用变量然后在脚本里设置变量的值以达到修改的目的。// --------------------- body 类型为 form-data ------------------ // 当 body 类型为 form-data 时从 pm.request.body.formdata 获取请求参数 var formData pm.request.body.formdata;// 获取 key 为 field1 的 form-data 参数的值 var field1 formData.get(field1); console.log(field1); // 控制台打印 field1// 已键值对象方式获取所有 formdata 参数 var formdataObject formData.toObject(); console.log(formdataObject); // 控制台打印 formdataObject// 遍历整个 form-data 数据 formData.each(item {console.log(item.key); // 控制台打印参数名console.log(item.value); // 控制台打印参数值 });// --------------------- body 类型为 x-www-form-urlencode ------------------ // 当 body 类型为 x-www-form-urlencode** 时从 pm.request.body.urlencoded 获取请求参数 var formData pm.request.body.urlencoded;// 获取 key 为 field1 的 form-data 参数的值 var field1 formData.get(field1);// 已键值对象方式获取所有 formdata 参数 var formdataObject formData.toObject();// 遍历整个 form 数据 formData.each(item {console.log(item.key); // 控制台打印参数名console.log(item.value); // 控制台打印参数值 });// --------------------- body 类型为 JSON ------------------ try {var jsonData JSON.parse(pm.request.body.raw);console.log(jsonData); // 控制台打印参整个 json 数据 } catch (e) {console.log(e); }// --------------------- body 类型为 raw ------------------ var raw pm.request.body.raw; console.log(raw); // 控制台打印参整个 raw 数据 3常用后置脚本 pm.test(响应状态码为200, function () {pm.response.to.have.status(200);pm.expect(pm.response.code).to.eql(200); });// GET https://gank.io/api/v2/banners pm.test(成功响应且有数据, function() {pm.expect(pm.response.code).to.eql(200);const respJson pm.response.json();pm.expect(respJson.data).to.length.gt(0); })// GET https://gank.io/api/v2/data/category/GanHuo/type/iOS/page/1/count/10 pm.test(分页数据满页, function() {const respJson pm.response.json();pm.expect(respJson.data.length).to.eq(10);pm.expect(respJson.data).to.have.lengthOf(10); })// 在脚本中发送请求 pm.sendRequest(https://gank.io/api/v2/banners, function(err, resp) {console.log(resp.json()) })// 响应数据转换 // json const responseJson pm.response.json(); // xml const responseJson xml2Json(pm.response.text()); // csv const parse require(csv-parse/lib/sync); const responseJson parse(pm.response.text()); // html https://cheerio.js.org const $ cheerio.load(pm.response.text()); console.log($.html()); console.log($(.header)); // 纯文本 pm.expect(pm.response.text()).to.include(customer_id); pm.response.to.have.body(whole-body-text);// 将 jsonData.token 的值写入环境变量 pm.environment.set(token, jsonData.token); 4常用断言 // response assertions 示例 pm.test(返回结果没有错误, function() {pm.response.to.not.be.error;pm.response.to.have.jsonBody();pm.response.to.not.have.jsonBody(error); });// pm.response.to.be* 示例 pm.test(返回结果没有错, function() {// assert that the status code is 200pm.response.to.be.ok; // info, success, redirection, clientError, serverError, are other variants// assert that the response has a valid JSON bodypm.response.to.be.withBody;pm.response.to.be.json; // this assertion also checks if a body exists, so the above check is not needed });// ----------- 状态码 ------------- pm.test(Status code is 200, function() {pm.response.to.have.status(200); }); // 检查 HTTP 状态码名称是否包含某个字符串 pm.test(Status code name has string, function() {pm.response.to.have.status(Created); }); // 是否正确的 POST 请求状态码 pm.test(Successful POST request, function() {pm.expect(pm.response.code).to.be.oneOf([201, 202]); });// --------- 请求头 --------- pm.expect(pm.response.headers.get(Content-Type)).to.eql(application/json); pm.test(Content-Type header is present, function() {pm.response.to.have.header(Content-Type); });// --------- cookie --------- pm.expect(pm.cookies.has(JSESSIONID)).to.be.true; pm.expect(pm.cookies.get(isLoggedIn)).to.eql(1);// --------- 响应时间 ms --------- pm.test(Response time is less than 200ms, function() {pm.expect(pm.response.responseTime).to.be.below(200); });// --------------- 请求体验证 ----------------- const jsonData pm.response.json(); pm.expect(jsonData.name).to.eql(Jane); // 响应值等于某个预先定义的变量值 pm.expect(jsonData.name).to.eql(pm.environment.get(name));// 检查 response body 是否包含某个字符串 pm.test(Body matches string, function() {pm.expect(pm.response.text()).to.include(string_you_want_to_search); });// 检查 response body 是否包含等于字符串 pm.test(Body is correct, function() {pm.response.to.have.body(response_body_string); });// 检查 json 值 pm.test(Your test name, function() {var jsonData pm.response.json();pm.expect(jsonData.value).to.eql(100); });// 断言数据类型 pm.expect(jsonData).to.be.an(object); pm.expect(jsonData.name).to.be.a(string); pm.expect(jsonData.age).to.be.a(number); pm.expect(jsonData.hobbies).to.be.an(array); pm.expect(jsonData.website).to.be.undefined; pm.expect(jsonData.email).to.be.null;// 数组属性 pm.expect(jsonData.errors).to.be.empty; pm.expect(jsonData.errors).to.be.an(array).that.is.empty; pm.expect(jsonData.areas).to.include(goods); const contactSettings jsonData.settings.find(m m.type contact); pm.expect(contactSettings).to.be.an(object, 找不到联系方式配置信息); pm.expect(contactSettings.detail).to.have.members([email, sms]);// 对象 pm.expect({a: 1, b: 2}).to.have.all.keys(a, b); pm.expect({a: 1, b: 2}).to.have.any.keys(a, b); pm.expect({a: 1, b: 2}).to.not.have.any.keys(c, d); pm.expect({a: 1}).to.have.property(a); pm.expect({a: 1, b: 2}).to.be.an(object).that.has.all.keys(a, b); pm.expect({a: 1, b: 2}).to.deep.include({a:1}); // 包含部分属性 // 集合 pm.expect({a: 1, b: 123}.a).to.be.oneOf([1, 123]);// 字符串 pm.expect().to.be.empty; 5脚本里发送请求 pm.sendRequest(https://postman-echo.com/get, (error, response) {if (error) {console.log(error);} else {console.log(response);pm.environment.set(variable_key, new_value);} });// 完整的 request 参数示例 const echoPostRequest {url: https://postman-echo.com/post,method: POST,header: {headername1: value1,headername2: value2,},body: {mode: raw,raw: JSON.stringify({ key: this is json }),}, }; pm.sendRequest(echoPostRequest, function(err, res) {console.log(err ? err : res.json()); });// 对返回结果进行断言 pm.sendRequest(https://postman-echo.com/get, function(err, res) {if (err) {console.log(err);}pm.test(response should be okay to process, function() {pm.expect(err).to.equal(null);pm.expect(res).to.have.property(code, 200);pm.expect(res).to.have.property(status, OK);}); }); 在Runner中运行collection下的请求时, 可以通过postman.setNextRequest(请求名) 或者 postman.setNextRequest(请求id)来指定下一个请求, 这样可以构建起一个调用工作流, 比如先请求数据列表接口, 然后从响应中获取数据id, 再请求数据详情接口.  原文postman | Tonnys Blog
http://www.w-s-a.com/news/904407/

相关文章:

  • 我要啦免费统计怎么做网站销售订单管理系统软件
  • 门户网站建设教程更改wordpress端口
  • 普兰店网站建设公司云计算培训
  • 网站建设的网络技术app下载平台哪个好
  • 中国建筑人才网是什么网站导购网站制作
  • 网站建设开票东莞龙岗网站建设
  • 17网站一起做网批最近湘潭的新闻
  • 专业网站设计专业服务网站news怎么做
  • 杭州租房网站建设设计网站架构
  • 安徽做网站公司哪家好建设网站需要什么内容
  • 哪些网络公司可以做机票预订网站网站新闻后台怎么做
  • 微网站 域名企业网站怎么做推广
  • 兴安盟住房和城乡建设部网站在国外做网站
  • 南雄市建设局网站搜索关键词的方法
  • 网站建设维护工作经验深圳定制展会
  • 新闻类网站备案WordPress评论昵称显示错误
  • 如何建立一个个人网站自己做一个购物网站
  • 吴忠网站建设公司中国建筑股份有限公司 官网
  • 深圳电商网站开发公司page list wordpress
  • 长安外贸网站建设顺德区网站设计建设企业
  • 临沂市建设局网站简介专业建设网站开发
  • 肇庆网站制作设计中国企业500强招聘
  • 苏州厂房装修宁波seo网络推广外包报价
  • 文山知名网站建设惠州哪家做网站好
  • 物流网站风格网站登录密码保存在哪里设置
  • 免费网站怎么建立icodepython基础教程
  • 无障碍网站建设方案wordpress 任务管理系统
  • iis5.1发布网站中小企业网络营销存在的问题研究论文
  • 阳泉软件定制网站建设网站可以做多语言的吗
  • 建设网站的目的及功能定位主要包括哪些内容百度关键词优化