自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 Jmeter软件测试,这一篇就够了

Jmeter简介1. Jmeter的基本概念Apache JMeter是Apache组织开发的基于Java的压力测试工具。2.Jmeter的作用接口测试性能测试压力测试接口自动化测试数据库测试JAVA程序测试3.Windows下Jmeter下载安装登录 http://jmeter.apache.org/download_jmeter.cgi ,根据自己平台,下载对应文件4.安装JAVA环境安装JDK,配置环境变量(具体步骤不做介绍)将下载Jmeter文件解压,打开/bin/

2021-11-19 10:03:32 45889 9

原创 浅谈性能测试

性能测试的定义:就是通过工具来模拟各种性能测试的方法来对实际被测项目进行性能测试性能测试都需要测试哪些:(1)压力测试(2)负载测试(3)最大并发用户数(4)响应时间(5)tps(每秒事务处理数)如何展开性能测试:1)了解需求:在实际工作中需要先进行了解需求分析、需求调研、业务测试场景、性能指标。了解了这几样东西,设计性能测试场景、脚本、方案你就会得心应手2)性能测试准备:a.了解完需求之后就开始编写性能测试的测试用例了b.确定指标,可以根据指标编写脚本、方案、测试数

2021-12-26 19:55:12 537

原创 测试的流程

1.需求分析:在测试前拿到产品需求文档,进行需求分析及需求评审前先对需求文档进行详细的解读,对有疑问的地方进行标注。具体可以从以下进行:1)分析产品功能点2)产品核心竞争力3)Kano模型、马斯洛需求分析、多问几个为什么、上下文分析法2.指定测试用例:工欲善其事必先利其器;对于测试而言,测试用例就是利器,做好了才能把好关1)使用思维导图例举测试大纲,尽量发挥,想到什么就写什么;先放后收,对知识点进行总结归纳,标记重点测试模块,删除冗余及重复测试点2)可使用边界值法、等价类划分法、错误推测法、因

2021-12-26 19:07:02 673

原创 接口测试流程

1)后端开发人员完成代码编写,输出接口文档2)前端开发和厚点开发进行前后端联调,打通主干流程;联调结束后,后端开发人员提测接口3)接口测试人员,根据后端开发的提测接口,按照接口文档在【测试环境】进行接口测试。此时前端开发人员在并行开发前端页面4)此时,由于项目中前端开发、后端接口都在同时进行,所以会出现测试和前端开发的进度问题;a.前端开发完成、接口测试完成:这是最理想的情况,此时手工功能测试介入测试,接口测试人员进入验收测试。b.前端开发完成、接口测试未完成:此时手工功能测试也会介入测试,与接口

2021-12-23 11:19:40 1046

转载 PO模型。

概念:PO模型是Page Object Model的简写, 页面对象模型。PO模型又叫PO设计模式,是selenium自动化测试中最佳的设计模式之一,主要体现在对界面交互细节的封装,将页面定位和业务操作分开,也就是把对象的定位和测试脚本分开,在实际测试中只需要关注业务流程,从而提高可维护性。PO模型简单来说:就是通过面向对象的方式,封装页面定位和页面动作操作。与测试的逻辑分开。通俗解释一下就是每个页面当成一个对象,给这些页面写一个类,每一个page class维护着该web页的标签元素集和

2021-12-09 19:12:54 398

原创 mysql报错1045

大家可以参考着下面两篇文章去看一下:http://topic.csdn.net/t/20060117/15/4521496.html#http://doc.99net.net/doc/database/1076488199/1076549732.html由于以前从来没有遇到过这种情况,故把解决方法记录于此,以便今后自己查阅,具体方法就是你在改root密码的时候再加上一句给权限的语句:grant all on mysql.* to ‘root’@‘localhost’ identified by ‘p

2021-12-08 11:58:44 325

原创 关于软件测试的MySQL基础

1.数据库和SQL是什么关系数据库里面放着数据,而SQL是用来操作数据库里数据的语言(工具)。相当于有一碗米饭(碗就是mysql,里面放的米是数据),你要吃碗里的米饭,拿什么吃?拿筷子(sql)。用筷子(sql)操作碗里(mysql)的米饭(数据)2.数据库有哪些Oracle是最挣钱的数据库,出自甲骨文公司,市场占有率非常高,功能非常强大,被一些大型企业,电信,银行,证券公司所使用.MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MyS

2021-12-01 15:35:59 361

原创 函数防抖节流

函数防抖(debounce)函数防抖,就是指在触发事件后n秒后函数执行,如果在n秒这个时间内又触发了事件,则会重新计时简单来说,就是连续触发函数,只执行最后一次。常见应用场景搜索框搜索输入。只需用户最后一次输入完,再发送请求窗口大小调整。只需窗口调整完成后,计算窗口大小。防止重复渲染函数防抖的加单实现const _.debounce = (func, wait) => { let timer; return () => { clearTimeout(tim

2021-06-21 21:11:54 196

原创 js宏任务微任务

宏任务(macrotask) 微任务(microtask)宏任务包括:setTimeout setInterval Ajax DOM事件 微任务:Promise async/await 微任务比宏任务的执行时间要早任务队列和事件循环首先js是单线程,这样就意味着所有的任务都要排队,前一个任务结束才会执行后面的任务。这就形成了事件队列。如果队列的计算量大,CPU忙不过来,倒也算了。但是更多时候CPU是闲置的,因为IO设备处理得很慢。例如ajax读取网络数据。js设计者便想到,主线程..

2021-06-21 19:58:50 914

转载 ifram 优点、缺点

首先说一下iframe有什么作用:iframe元素会创建包含另一个文档的内联框架。提示:可以将提示文字放在<iframe></liframe>之间,来提示某些不支持iframe的浏览器优点:iframe能够原封不动的把嵌入的网页展现出来。 如果有多个网页引用iframe,那么你只需要修改frame的内容,就可以实现调用的每一个页面内容的更改,方便快捷。网页如果为了统一风格,头部和版本都是一样的,就可以写成一个页面,用iframe来嵌套,可以增加代码的复用性。..

2021-06-14 21:53:15 173

原创 Element-UI默认样式改不了?怎么办

在用vue开发项目过程中,我们总是避免不了的会使用到elementUI,它里面提供的一些组件都为我们的开发带来了很大的便利,但是,当有时候我们需要使用这些组件的同时又要修改下组件的UI样式

2021-06-10 21:51:02 983 1

原创 element-UI中的from表单验证

Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item的 prop 属性设置为需校验的字段名即可。rules 表单验证规则 object — —

2021-06-07 21:51:00 402

原创 Nginx解决Vue路由history模式白屏问题

首先我们把写好的项目放到nginx服务器上,html目录中z

2021-06-07 11:10:30 2028

原创 vue-router 鉴权 守卫

路由导航守卫“导航”表示路由正在发生改变。vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程中:

2021-06-04 16:27:38 212

原创 vant-ui 按需引入

在我们使用vant-ui时,虽然可以一次性导入所有组件,但是引入所有的组件会增加代码包的体积,因此我们不推荐这种做法。所以我们就要按需引入组件方式一(自动按需引入):

2021-06-04 11:04:24 280

转载 axios拦截+Vue CLI多环境变量配置

1.安装axiosnpm install axios -S2.目录创建在项目的src目录中,新建一个network文件夹(也可以取其它名字)作为我们的网络请求模块,然后在里面新建一个api.js用于写接口,和一个reques.js用于对axios的封装// 在http.js中引入axiosimport axios from 'axios'; // 引入axiosimport router from '../router';// vant的toast提示框组件,大家可根据...

2021-06-03 21:25:43 251

原创 前端基于Vue项目开发流程

1.确定项目技术栈2.搭建项目2.1从零搭建项目2.2基于原项目模板搭建3.定义路由4.组件化开发

2021-06-02 16:48:06 1458

原创 Vue中的transition

基本概念Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果在 CSS 过渡和动画中自动应用 class可以配合使用第三方 CSS 动画库,如 Animate.css在过渡钩子函数中使用 JavaScript 直接操作 DOM可以配合使用第三方 JavaScript 动画库,如 Velocity.js...

2021-06-01 21:38:52 853 1

原创 Vue中的keep-alive

keep-alive是Vue提供给我们一个内置组件,他可以用来保存我们路由切换时组件的状态组件使用keep-alive以后会新增两个生命周期 actived() deactived(),我们在切换路由的时候,想保存组件的状态,比如列表页面进入详情,我们想保存列表滚动的位置,我们就可以使用keep-alive保存列表页面的滚动位置。怎么使用keep-alive,有两种方式,1. 路由配置 2. keep-alive参数...

2021-06-01 20:36:53 232

原创 JavaScript事件委托(事件代理)

事件委托,别称事件代理。事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。<body> <!-- 不利用事件委托完成给一个列表绑定事件 --> <ul class="ul"> <li>1</li> <li>2</li> </ul></body><script> // 不利用事件委托完成

2021-06-01 20:17:43 234

原创 JavaScript闭包

内部函数可以访问外部函数的变量闭包的ben通过作用域链或函数嵌套实现优点:不会造成变量污染缺点:容易造成内存泄漏

2021-06-01 19:56:29 51

原创 JavaScript中var let const 的区别

var声明变量可以重复声明,而let不可以重复声明 var是不受限于块级的,而let是受限于块级 var会与window相映射(会挂一个属性),而let不与window相映射 var可以在声明的上面访问变量,而let有暂存死区,在声明的上面访问变量会报错 const声明之后必须赋值,否则会报错 const定义不可变的量,改变了就会报错 const和let一样不会与window相映射、支持块级作用域、在声明的上面访问变量会报...

2021-05-30 23:42:47 136 1

原创 浅谈JS作用域、作用域链、自由变量、变量提升

作用域作用域就是代码名字(变量)在某个范围内起作用和效果,目的是为了提高程序的可靠性更重要的是减少命名冲突作用域(es6)之前:全局作用域 局部作用域全局作用域:整个script标签或者是一个单独的js文件局部作用域(函数作用域):在函数内部就是局部作用域,这个代码的名字只在函数内部起效果和作用变量的作用域:根据作用域的不同分为两种 全局变量跟局部变量全局变量:在全局作用域下的变量(如果在函数内部没有声明直接赋值的变量也叫全局变量,但是不建议使用)function fun..

2021-05-28 16:53:28 57

原创 new一个函数,都会发生什么

创建一个新对象; 将构造函数的作用域赋给新对象(因此this就指向了这个新对象); 执行构造函数中的代码(为这个新对象添加s)

2021-05-27 21:01:13 1037

原创 js原型和原型链

prototype每个函数都有一个prototype,称为显示原型function fn() { }console.log(fn.prototype)__proto__每个实例对象都有一个__proto__,称为隐式原型每个实例对象的隐式原型__proto__,指向自身构造函数的显示原型constructor每个prototype原型都有一个constructor属性,指向它关联的构造函数//这是一个构造函数 function Foo(name,ag.

2021-05-27 17:09:50 53

原创 梳理一下JavaScript中的this与call/apply/bind方法

this是什么?this是JavaScript语言的一个关键字。 它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体内部使用。 函数的不同使用场合,this有不同的值。 总的来说,this就是函数运行时所在的环境对象。关于this指向的总结:在浏览器里,在全局范围内this指向window对象; 在函数中,this永远指向最后调用他的那个对象; 构造函数中,this指向new出来的那个新的对象; call、apply、bind中的this被强行绑定在指定的那个对象上; 箭头

2021-05-26 21:53:43 178

原创 JavaScript数组方法

se4提供的数组方法sort数组元素的排序:数组名.sort() 小写字母>大写字母>数字>空格 返回值:排序后的数组var num=[10,5,4,0,29,91,52,73,1];console.log(num);num.sort(function(a,b){ return a-b; }) //将num数组的元素按照数值关系升序排列 console.log(num); //[0,1,4,5,10,29,52,73,91];:slice数组元素的截

2021-05-25 22:00:13 53

原创 JavaScript--argument

当不确定有多少参数传递的时候,用arguments来获取function printArgs() { console.log(arguments); } printArgs("A", "a", 0, { foo: "Hello, arguments" })arguments其实是当前函数的一个内置对象arguments对象中存储了传递的所有实参Arguments的展示形式是一个伪数组,可以遍历伪数组有以下特点1 具有length属性2 按照索引的方式存储数据

2021-05-25 20:29:58 166

原创 JavaScript数据类型判断

判断js中的数据类型有以下几种方法:typeof、instanceof、constructor、prototype、$.type()/jquery.ytpe(),接下来主要比较以下这几种方法的异同。1.最常见的判断方法:typeoftypeof运算符后可跟着一个操作数,用于判断该操作数的数据类型;typeof适用于数据类型中除null、object的其他5种类型的判断typeof undefined; // "undefined";typeof 1; // "numb

2021-05-24 21:55:22 118

原创 JavaScript的数据类型

1.数据类型的分类js中的数据类型分为两大类:基本数据类型和引用数据类型 基本数据类型分为:number、string、博哦了安、null、undefined 引用数据类型分为:Object对象、Array数组、RegExp正则、Date事件对象、Math数学对象2.基本数据类型和引用数据类型的区别基本数据类型存储在栈内存中,引用数据类型存储在堆内存中 数据存储时,基本数据类型在变量中存的是值,引用数据类型在变量中存储的是空间地址 基本数据操作的是值,引用数据类型操作的是空间地址3...

2021-05-24 20:47:34 460

原创 JavaScript深拷贝

前言基本数据类型:number, string, boolean, null, undefined, symbol,直接存储在栈中的数据。引用数据类型:object, array, function,将该对象引用地址存储在栈中,然后对象里面的数据存放在堆中。深拷贝和浅拷贝是只针对Object和Array这样的引用数据类型的。什么是深拷贝,我们为什么使用深拷贝我们在实际的项目中,肯定不能让每个对象的值都指向同一个堆内存,这样的话不便于我们做操作,所以自然而然的诞生了深拷贝深拷贝作用在引

2021-05-23 21:57:43 212

原创 vue-router基本使用

1.基本使用1.安装:npm install vue-router2.main.js引入:import VueRouterfrom 'vue-router'Vue.use(VueRouter)//Vue路由:引入import VueRouter from 'vue-router'Vue.use(VueRouter)//Vue路由:引入并创建组件import BYHome from './components/BYHome.vue'import BYNews from '..

2021-05-23 21:31:59 71

原创 Vuex

概念Vuex是一个专为Vue开发的应用程序的状态管理模式,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化简而言之,就是Vuex采用类似全局对象的形式来管理所有的组件的公共数据,如果想修改这个全局对象的数据,需要按照Vuex提供的方式来修改。组成State:驱动应用的数据源,用来保存所有组件的公共数据 Mutations:是唯一更改 store 中状态的方法,且必须是同步函数 Getters:可以将 getters 理解为 store 的计算

2021-05-23 19:08:55 67

原创 vue生命周期函数

vue生命周期分为8个阶段。 创建前、创建完成,挂载前、挂载完成,更新前、更新完成,销毁前、销毁完成。创建前:beforeCreated,vue还没有实列的挂载元素$el和数据对象data。(加载loading事件)创建后:created,vue实例的数据对象data有了,$el还没有。(结束loading、请求数据为mounted渲染做准备)挂载前:beforeMounted,vue实列的$el和data都初始化了,但是挂载之前为虚拟的dom节点,具体的data filter还未替换挂载完

2021-05-20 21:43:59 55

原创 vue中的组件通信

父传递子如何传递(1)在父组件的子组件标签上绑定一个属性,挂载要传输的变量 ​(2)在子组件中通过props来接受数据,props可以是数组也可以是对象,接受的数据可以直接使用 props: ["属性名"] props:{属性名:数据类型}子传递父如何传递(1)在父组件的子组件标签上自定义一个事件,然后调用需要的方法 ​(2)在子组件的方法中通过 this.$emit("事件")来触发在父组件中定义的事件,数据是以参数的形式进行传递的兄弟组件如何通信(1)在src中新建一个Bus

2021-05-20 07:57:04 50

转载 uniapp封装Promise

1,创建文件夹在根目录里创建request文件夹 在request文件夹里面创建request.js文件2,封装promise在promise.js文件中写入

2021-05-20 07:46:27 702

原创 发布小程序流程详解

1.首先我们现将要发布的小程序在微信开发者平台打开,点击右上角上传按钮2.输入版本号及提交内容,点击上传,上传成功3.我们进入微信小程序官网:https://mp.weixin.qq.com,进入【版本管理】,找到开发版本,点击【提交审核】4.如果我们是首次提交的话,会弹出如下会话框,我们点击【前往填写】5.点击【填写】6.填写我们要发布的小程序的基本信息,点击【提交】7.提交审核8.我们输入信息,提交审核,反馈给我们一个1-7天的等待结果,也可加

2021-05-17 10:14:14 589

原创 微信小程序支付流程

流程:创建订单//创建订单 const orderParams={order_price,consignee_addr,goods}; //准备发送请求 创建订单 获取订单编号 const {order_number}=await request({url:"/my/orders/create",method:"POST",data:orderParams});准备预支付//发起预支付接口 const {pay}=awai

2021-05-16 21:31:21 122

原创 微信小程序授权登录流程

通过button组件open-type属性增加getUserInfo值获取用户信息,用户点击时候会触发bindgetuserinfo事件。<button type="primary" plain open-type="getUserInfo" bindgetuserinfo="handleGetUserInfo">登录</button>将获取到的用户信息进行存储,返回上一级页面Page({ handleGetUserInfo(e){ const {us..

2021-05-16 21:09:16 254

原创 小程序获取收货地址流程

点击事件触发获取当前用户的设置 根据用户当前设置的授权结果,判断是否包含收货地址授权 如果包含收货地址授权并且没有取消过授权,直接调用wx.chooseAddress(),获取用户收货地址 用户如果取消过授权,调用wx.openSetting(),调取客户端小程序设置界面让用户开启授权 用户当前设置不包含收货地址授权(说明是第一次打开获取用户收货地址信息授权),调用wx.chooseAddress(),获取用户收货地址。<button bindtap='handleChooseAddres

2021-05-14 14:48:40 137

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除