自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何测试一个杯子

如何测试一个杯子功能测试能否装水,除了装水, 能否装其他液体。比如可乐,酒精能装多少ML的水杯子是否有刻度表杯子能否泡茶,跑咖啡杯子是否能放冰箱,做冰块杯子的材质是什么(玻璃,塑料,黄金做的)界面测试外观好不好看。什么颜色杯子的形状是怎么样的。杯子的重量是多少杯子是否有异味杯子的图案是否合理性能测试能否装100度的开水能否装0度冰水装满水,放几天后,是否会漏水杯子内壁上的涂料是否容易脱落。杯子上的颜色是否容易褪色或者脱落被一个大人压下,是否会碎安全性

2021-04-07 09:58:01 515

原创 订单怎么测试?

订单怎么测试?订单怎么测试?(主要测试订单的状态变化)我们系统的订单生成的流程是这样子的,用户下单后,系统会在用户端和卖家端生成一个待付款的订单,同时在数据库也会生成一个待付款的订单;当用户付款之后,用户端显示待发货状态,卖家端显示已付款待发货状态,订单在数据库的状态为待发货,产品相应的库存量会减少,用户的账户金额减少相应的金额;当卖家发货后,用户端和卖家端的订单状态都显示为配送中,数据库中的订单状态也同时发生变化;当用户确认收货后,订单状态会显示为已完成,待评价状态,数据库中的订单状态也同时发生变

2021-04-07 09:47:38 3356

原创 还款功能怎么测试?

还款功能怎么测试?功能:正常还款流程逾期还款不同的还款账户余额不足还款弱网状态下,连续点击还款按钮弱网状态,或系统不稳定,支付服务方未把支付结果返回给下单发起方(如果发生这种问题,结果是,钱扣了,还款状态未发生变化)金额不输,为0,为负数提前还款第三方还款性能:还款的响应时间是否过长用户体检:系统提示是否容易理解界面是否友好,输入框是否对齐,按钮大小是否适中,是否有错别字等安全性:是否能防止SQL注入,防XSS攻击还款金额是否会被拦截篡改还

2021-04-07 09:46:47 318

原创 登录功能怎么测试?

登录功能怎么测试?功能方面的测试:输入正确的用户名和密码,点击提交按钮,验证是否能正确登录,能否能跳转到正确的页面输入错误的用户名, 验证登录失败,并且提示相应的错误信息输入错误的密码, 验证登录失败,并且提示相应的错误信息用户名为空, 验证登录失败,并且提示相应的错误信息密码为空, 验证登录失败,并且提示相应的错误信息用户名和密码都为空,点击登陆用户名和密码前后有空格的处理性能方面的测试打开登录页面,需要多长时间输入正确的用户名和密码后,登录成功跳转到新页面,需要多长时间

2021-04-07 09:45:40 698

原创 文件上传怎么测试?

文件上传怎么测试?功能测试选择符合要求的文件,上传--------上传成功;上传成功的文件名称显示----------显示正常(根据需求)查看,下载上传成功的文件--------上传的文件可查看或下载删除上传成功的文件-------------可删除替换上传成功的文件-------------可替换上传文件是否支持中文名称--------根据需求而定文件路径是否可手动输入----------根据需求而定手动输入正确的文件路径,上传-----上传成功手动输入错误的文件路径,上传----

2021-04-07 09:44:17 292

原创 搜索功能怎么测试?

搜索功能怎么测试?功能方面的测试:搜索单个字,词语,句子,检索到的内容是否准确,链接是否准确长度:例如输入框支持100字符, 那需要测试100字符、101字符,最大长度的显示是否正常;哪些是支持的字符类型:数字、字母、汉字、字符!@!#、特殊字符;是否支持换行;字符串前后中带空格,前后的空格是否过滤, 中间的空格是否保留全角半角的字母、数字性能方面的测试点击搜索按钮后,搜索结果多长时间能够显示进入搜索页面需要多久安全性方面的测试能否防止SQL注入攻击,否防止XSS攻击

2021-04-07 09:43:00 735

原创 购物车怎么测试?

购物车怎么测试?功能测试未登录时:将商品加入购物车,页面跳转到登录页面,登录成功后购物车数量增加。登录后:所有链接是否跳转正确;商品是否可以成功加入购物车;购物车商品总数是否有限制;商品总数统计是否正确;全选功能是否可用;删除功能是否可用;价格总计是否正确;商品文字太长时是否显示完整;购物车中下架的商品是否有标识,是否还能支付;新加入购物车商品排序(添加购物车中存在的店铺的商品和购物车中不存在的店铺的商品);是否支持快TAB、ENTER等快捷键;商品删除后商品总数是否减少

2021-04-07 09:42:02 167

原创 支付怎么测试?

支付怎么测试从功能方面考虑:正常完成支付的流程;支付中断后继续支付的流程;支付中断后结束支付的流程;单订单支付的流程;多订单合并支付的流程;余额不足;金额的最小值 :如0.01;金额为0;金额为负数未绑定银行卡;密码错误;密码错误次数过多;找人代付;弱网状态下,连续点击支付功能功能,会不会支付多次;有优惠券、折扣、促销价进行结算是否正确;不同终端上支付:包括PC端的支付、笔记本电脑的支付、平板电脑的支付、手机端的支付等;不同的支付方式:银行卡网银支付、支付宝支付、微信支付

2021-04-07 09:40:53 128 1

原创 实名认证向导测试点

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210401145816604.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDE5MDY0Nw==,size_16,color_FFFFFF,t_70#pic_center)功能测试 1 姓名输入非汉字是否提示、是否能够通过...

2021-04-01 15:58:58 428

原创 mongoDB操作方法

1.在 C:\Program Files\MongoDB\Server\3.4\bin 有两个可执行文件 分别是mongod.exe mongo.exemongod.exe 服务器端的可执行文件 可以用来运行mongodb数据库服务器mongo.exe 客户端的可执行文件 可以用来连接正在运行的mongodb数据库服务器2.如何启动mongod数据库服务器打开终端 执行: mongod --dbpath=c:/data/db --port=27017/3.如何连接数据库服务器

2020-09-18 21:16:03 531 16

转载 Vuex_学习记录

VueX 是一个专门为 Vue.js 应用设计的状态管理构架,统一管理和维护各个vue组件的可变化状态(你可以理解成 vue 组件里的某些 data )。Vuex有五个核心概念:state, getters, mutations, actions, modules。1.state:vuex的基本数据,用来存储变量2.geeter:从基本数据(state)派生的数据,相当于state的计算属性3.mutation:提交更新数据的方法,必须是同步的(如果需要异步使用action)。每个 mutatio

2020-09-17 21:29:55 73

原创 jQuery 库中的 $() 是什么?

() 函数用于将任何对象包裹成 jQuery 对象,接着你就被允许调用定义在 jQuery 对象上的多个不同方法。你可以将一个选择器字符串传入 $() 函数,它会返回一个包含所有匹配的 DOM 元素数组的 jQuery 对象。...

2020-09-16 20:30:54 778

原创 移动端新增元素

一、新增的主体结构元素1.header 头部2.nav 导航条3.section 区块4.footer 页脚5.aside 侧边栏6.article 文章7.detail8.dialog甲:你究竟喜欢我什么呢?我改还不行吗乙:我就喜欢不喜欢我的样子二、新增的非主体结构元素1.canvas 画图2.video 插入视频3.audio 插入音频三、新增的表单域元素:url:输入时以http:// 开头color 色彩colordatedatetim

2020-09-15 19:06:00 139

原创 prop 验证,和默认值

prop 验证,和默认值所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级prop 的更新会向下流动到子组件中,但是反过来则不行。这样会防止从子组件意外改变父级组件的状态,从而导致你的应用的数据流向难以理解。额外的,每次父级组件发生更新时,子组件中所有的 prop 都将会刷新为最新的值。这意味着你不应该在一个子组件内部改变 prop。如果你这样做了,Vue 会在浏览器的控制台中发出警告。子组件想修改时,只能通过 $emit 派发一个自定义事件,父组件接收到后,由父组件修改。有两

2020-09-14 21:00:57 615

原创 说一下从输入 URL 到页面加载完中间发生了什么?

说一下从输入 URL 到页面加载完中间发生了什么?答:大致过程是这样的:1.DNS 解析2.TCP 连接3.发送 HTTP 请求4.服务器处理请求并返回需要的数据5.浏览器解析渲染页面6.连接结束注:这里会延伸出问 http 状态码,和三次握手和四次挥手相关问题:(1)http 状态码: 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码2xx (成功)表示成功处理了请求的状态码。常见的 2 开头的状态码有:200 – 服务器成功返回网页3xx (重定向)表示要完成请

2020-09-11 21:55:54 183

原创 js去重

第一种、function unique(arr){var result = []; //结果数组for(var i = 0; i < arr.length; i++){//如果在结果数组result中没有找到arr[i],则把arr[i]压入结果数组result中if (result.indexOf(arr[i]) == -1) result.push(arr[i]);}return result;}第二种、function unique3(arr){//遍历arr,同时创建

2020-09-09 19:38:52 78

原创 GIT 常用命令

GIT 常用命令下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库在当前目录新建一个Git代码库$ git init新建一个目录,将其初始化为Git代码库$ git init [project-name]下载一个项目和它的整个代码历史$ git clone [url]二、配置Git的设置文件为.gitconfig,它可以在用户

2020-09-08 19:20:44 77

原创 keep-alive 的作用

keep-alive 的作用1、 在 vue 项目中,难免会有列表页面或者搜索结果列表页面,点击某个结果之后,返回回来时,如果不对结果页面进行缓存,那么返回列表页面的时候会回到初始状态,但是我们想要的结果是返回时这个页面还是之前搜索的结果列表,这时候就需要用到 vue 的 keep-alive 技术了.2、 在 router-view 上使用可以缓存该路由组件3、 有两个参数 include - 字符串或正则表达,只有匹配的组件会被缓存exclude - 字符串或正则表达式,任何匹配的组件都不会被缓

2020-09-07 19:20:34 136

原创 路由独享守卫

路由独享守卫路由独享守卫是在路由配置页面单独给路由配置的一个守卫 exportdefaultnewVueRouter({ routes:[{ path:’/’, name:‘home’, component:‘Home’, beforeEnter:(to,from,next)=>{ //…}}]} )

2020-09-04 21:03:42 1029

原创 vue 中数组中的某个对象的属性发生变化,视图不更新如何解决

vue 中数组中的某个对象的属性发生变化,视图不更新如何解决问题原因:因为 vue 的检查机制在进行视图更新时无法监测 数组中的某个对象的属性值的变化。解决方案如下方案一:利用 this.set(this.obj,key,val)例:this.set(this.obj,‘k1’,‘v1’)方案二:就利用 Object.assign({},this.obj)创建新对象如果是数组就 Object.assign([],this.obj)如果是对象就 Object.assign({},this.obj)

2020-09-03 19:36:13 1374

原创 什么是虚拟dom,和 diff 算法

什么是虚拟dom,和 diff 算法1、虚拟 DOM 的最终目标是将虚拟节点渲染到视图上。但是如果直接使用虚拟节点覆盖旧节点的话,会有很多不必要的 DOM 操作。例如,一个 ul 标签下很多个 li 标签,其中只有一个 li 有变化,这种情况下如果使用新的 ul 去替代旧的 ul,因为这些不必要的 DOM 操作而造成了性能上的浪费。为了避免不必要的DOM 操作,虚拟 DOM 在虚拟节点映射到视图的过程中, 将虚拟节点与上一次渲染视图所使用的旧虚拟节点(oldVnode)做对比,找出真正需要更新的节点来进

2020-09-02 20:23:49 193

原创 vue 自定义指令如何使用

vue 自定义指令如何使用【全局指令】使用 Vue.diretive()来全局注册指令。【局部指令】也可以注册局部指令,组件或 Vue 构造函数中接受一个 directives 的选项。钩子函数。指令定义函数提供了几个钩子函数(可选)。【bind】只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。【inserted】被绑定元素插入父节点时调用( 父节点存在即可调用, 不必存在于document 中)。【update】所在组件的 VNode

2020-09-01 20:30:45 221

原创 vue3.0 与 vue2.0 的区别

1、性能提升一句话简介:更小巧,更快速;支持摇树优化;支持 Fragments 和跨组件渲染;支持自定义渲染器。2、API 变动一句话介绍:除渲染函数 API 和 scoped-slot 语法之外,其余均保持不变或者将通过另外构建一个兼容包 来兼容 2.x。模板语法的 99% 将保持不变。除了 scoped slot 语法可能会有一些微调之外变动最大的部分将是渲染函数 (render) 中的虚拟 DOM 的格式。3、重写虚拟 DOM (Virtual DOM Rewrite)随着虚拟 DOM 重

2020-08-31 19:48:56 393

原创 路由导航守卫有几种,如何实现

路由导航守卫有几种,如何实现一、全局路由守卫所谓全局路由守卫,就是小区大门,整个小区就这一个大门,你想要进入其中任何一个房子,都需要经过这个大门的检查全局路由守卫有个两个:一个是全局前置守卫,一个是全局后置守卫router.beforeEach((to, from, next) => { console.log(to) => // 到哪个页面去? console.log(from) => // 从哪个页面来? next() => // 一个回调函数}router.afte

2020-08-28 18:33:44 1579

原创 Vue 中 methods,computed, watch 的区别

Vue 中 methods,computed, watch 的区别1)methods 中都是封装好的函数,无论是否有变化只要触发就会执行适用场景:组件中功能的封装,逻辑处理2)computed:是 vue 独有的特性计算属性,可以对 data 中的依赖项再重新计算得到一个新值,应用到视图中,和 methods 本质区别是 computed 是可缓存的, 也就是说 computed 中的依赖项没有变化,则 computed 中的值就不会重新计算, 而 methods 中的函数是没有缓存的。适用场景:假设

2020-08-27 20:28:05 74

原创 跨域的解决方式有哪些?

跨域的解决方式有哪些?答:产生跨域的情况有:不同协议,不同域名,不同端口以及域名和 ip 地址的访问都会产生跨域。跨域的解决方案目前有三种主流解决方案:是 jsonpjsonp 实现原理:主要是利用动态创建 script 标签请求后端接口地址,然后传递 callback 参数,后端接收 callback,后端经过数据处理,返回 callback 函数调用的形式,callback 中的参数就是 json优点:浏览器兼容性好,缺点:只支持 get 请求方式是代理(前端代理和后端通常通过 nginx

2020-08-26 20:07:43 433

原创 es6 有哪些拓展

es6 有哪些拓展1.新增了块级作用域(let,const)2.提供了定义类的语法糖(class)3.新增了一种基本数据类型(Symbol)4.新增了变量的解构赋值5.函数参数允许设置默认值,引入了 rest 参数,新增了箭头函数6.数组新增了一些 API,如 isArray / from / of 方法;数组实例新增了entries(),keys() 和 values() 等方法7.对象和数组新增了扩展运算符8.ES6 新增了模块化(import/export)9.ES6 新增了 Se

2020-08-25 18:52:45 145

原创 解构赋值

图片懒加载实现原理一.什么是懒加载?懒加载突出一个“懒”字,懒就是拖延迟的意思,所以“懒加载”说白了就是延迟加载,比如我们加载一个页面,这个页面很长很长,长到我们的浏览器可视区域装不下,那么懒加载就是优先加载可视区域的内容,其他部分等进入了可视区域在加载。二.为什么要懒加载?懒加载是一种网页性能优化的方式,它能极大的提升用户体验。就比如说图片,图片一直是影响网页性能的主要元凶,现在一张图片超过几兆已经是很经常的事了。如果每次进入页面就请求所有的图片资源,那么可能等图片加载出来用户也早就走了。所以,

2020-08-24 21:30:03 77

原创 sessionStoragelocalStorage cookie 的区别

sessionStoragelocalStorage cookie 的区别1.localStorage 生命周期是永久,这意味着除非用户显示在浏览器提供的UI 上清除 localStorage 信息,否则这些信息将永远存在。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。2.sessionStorage 仅在当前会话下有效,关闭页面或浏览器后被清除。存 放数据大小为一般为 5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。源生接口可以接受,亦可再次

2020-08-23 20:53:05 69

原创 什么是深拷贝 浅拷贝 如何实现

浅拷贝只是将数据中所有的数据引用下来,依旧指向同一个存放地址,拷贝之后的数据修改之后,也会影响到原数据的中的对象数据深拷贝将数据中所有的数据拷贝下来,对拷贝之后的数据进行修改不会影响到原数据实现深拷贝1 JSON.stringify() 、 JSON.parse()是否支持深拷贝多层引用类型嵌套:支持不可以拷贝 undefined , function, RegExp 等类型的数据**展开运算符… **是否支持深拷贝多层引用类型嵌套:不支持Object.assign(target, so

2020-08-21 19:11:58 313

原创 图片懒加载实现原理

图片懒加载实现原理一.什么是懒加载?懒加载突出一个“懒”字,懒就是拖延迟的意思,所以“懒加载”说白了就是延迟加载,比如我们加载一个页面,这个页面很长很长,长到我们的浏览器可视区域装不下,那么懒加载就是优先加载可视区域的内容,其他部分等进入了可视区域在加载。二.为什么要懒加载?懒加载是一种网页性能优化的方式,它能极大的提升用户体验。就比如说图片,图片一直是影响网页性能的主要元凶,现在一张图片超过几兆已经是很经常的事了。如果每次进入页面就请求所有的图片资源,那么可能等图片加载出来用户也早就走了。所以,

2020-08-20 20:14:28 258

原创 Axios 拦截做过哪些

Axios 拦截做过哪些Axios 拦截分为请求拦截和响应拦截,请求拦截就是在你请求的时候会进行触发!只要是你发送一个 axios 请求就会触发!所以我们主要用它做我们的loading 加载和数据的权限验证,包括我们所有的数据预加载也可以实现,响应拦截主要是我们在 loading 加载,和做所有数据加载需要整体的结束,这个时候的结束就需要在数据马上发给前端的时候进行隐藏和结束,包括我们的请求头的设置,后端数据已经发送过来的时候,我们为了确保请求头的传递就必须在看看header 里面是否有你需要的请求,如果

2020-08-19 20:27:24 250

原创 原型和原型链

原型和原型链1、原型的概念JavaScript 的所有对象中都包含了一个 [proto] 内部属性,这个属性所对应的就是自身的原型JavaScript 的函数对象,除了原型 [proto] 之外,还有 prototype 属性,当函数对象作为构造函数创建实例时,该 prototype 属性值将被作为实例对象的原型 [proto]2、原型链的概念当一个对象调用自身不存在的属性/方法时,就会去自己 [proto] 关联的前辈 prototype 对象上去找,如果没找到,就会去该 prototyp

2020-08-18 20:29:13 159

原创 webpack是什么?

webpack 是一个现代 JavaScript 应用程序的静态模块打包器webpack稳定版本:v4.44如何使用webpack搭建前端环境创建项目目录并初始化package.json默认创建package.json文件 npm init -y安装webpack和webpack-clinpm i webpack webpack-cli -Dwebpack支持的文件类型默认只支持JS和json文件的引入注意:如果在JS中要引入其他文件类型:.css,.png,字体文件或其他做任意文

2020-08-17 20:35:14 341

原创 闭包

闭包:定义 当一个函数的返回值是另外一个函数,而返回的那个函数如果调用了其父函数的内部变量,且返回的那个函数在外部被执行,就产生了闭包.闭包是一个环境,具体指的就是外部函数–高阶函数 closure闭包的三个特性1:函数套函数2:内部函数可以直接访问外部函数的内部变量或参数3:变量或参数不会被垃圾回收机制回收 GC闭包的优点:1:变量长期驻扎在内存中2:避免全局变量的污染3:私有成员的存在闭包的缺点常驻内存 增大内存的使用量 使用不当会造成内存的泄露. 闭包的两种写法:1:fun

2020-08-15 19:25:31 66

原创 h5 和css3 的新特性

h5 每个人有每个人的理解,我的理解呢!我的理解是 h5 呢并不是新增一些标签和样式更多的是里面新增的一些功能例如重力感应,他可以让我们感知当前手机的状态,可以帮助我们完成手机摇一摇,监听当前我们步数,还有开启 3d 模式让我们的 2d 空间变成一个 3d 模式,而且 h5 中为了挺高页面性能,页面元素的变大,不在是元素本身的大小变化,而是一种视觉上的效果,从而减少了 dom 操作,防止了页面的重绘,当然 h5 中不单单是这些还有webgl 游戏引擎 canvas、svg 完成图表以及一些小游戏的开发例如大

2020-08-14 16:54:36 109

原创 vue 组件父子,子父,兄弟通信

vue 组件父子,子父,兄弟通信第一种:父传子:主要通过 props 来实现的具体实现:父组件通过 import 引入子组件,并注册,在子组件标签上添加要传递的属性,子组件通过 props 接收,接收有两种形式一是通过数组形式[‘要接收的属性’ ],二是通过对象形式{ }来接收,对象形式可以设置要传递的数据类型和默认值,而数组只是简单的接收第二种:子传父:主要通过emit来实现具体实现:子组件通过通过绑定事件触发函数,在其中设置this.emit 来实现具体实现: 子组件通过通过绑定事件触发函数,

2020-08-13 10:38:14 112

原创 什么是promise 是什么?有哪些状态和参数?如何使用?

1、主要用于异步计算2、可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果3、可以在对象之间传递和操作 promise,帮助我们处理队列resolve 作用是,将 Promise 对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;reject 作用是,将 Promise 对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的

2020-08-12 14:25:51 1361

原创 简单介绍一下什么是vue

1、 vue是什么vue是一个渐进式的js框架2、什么是渐进式框架对项目参与的少 (在项目中可以使用其他的框架或者类库)3、MVC和MVVMmvc是一个后台的软件设计模式,将程序分为三部分 m(model 模型) V(view 视图) C(controller 控制器)模型:model 操作和数据库相关的逻辑view :和前端相关的所有界面controll:控制器来协调什么时候显示view 什么时候调用modelmvvm:将mvc中view又细分为MVVM M model

2020-08-11 16:42:00 4272

原创 vue安装路由

安装路由cnpm install vue-router --savecnpm install animate.css -Scnpm install sass-loader node-sass --savecnpm i babel-plugin-import -Dcnpm i vant -Scnpm install axios --savecnpm install --save vue-router vuexcnpm install axios -Scnpm install --save m

2020-08-10 18:53:37 181

空空如也

空空如也

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

TA关注的人

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