自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 权限的实现

权限的功能,可以算得上是后台管理系统的一个标配了,大部分的后台管理系统,都会配置权限功能。但在测试的过程中,接触过不少的后台管理系统,能够把权限做得好的,不多。有漏洞,甚至假权限,比比皆是。结合许多后台管理系统权限功能的不足,我自己也实现了一个权限的功能。就是在我原先写的测试案例的基础上做的。当然这个功能,我很早就做好了,只不过,我前端是用jquery来实现的。对此,我并不是很满意,本来,是想...

2020-05-01 10:26:50 1759 1

原创 jmeter运行脚本停不下来的猜想及让服务器自带性能监测

想来,我在进入测试领域不久的时候,就负责了公司的性能测试。那个时候,没啥经验,过程中也是遇到了很多的问题,好在阻断的问题都解决了,当然,其过程,是比较痛苦的。但是,也有一些问题,并没有得到解决。当然,这些问题,通常不是单单靠测试就可以解决的。在这其中,就有一个这样的问题:在压力测试的过程中,如果直接连接服务器,进行压测,在线程数达到120的时候,测试脚本运行完成之后,不会停下来。如果使用SLB做负...

2020-04-19 10:50:51 2254 2

原创 巧用栈信息定位BUG

在我写的SeleniumGUI工具里面,有一个功能,当前的脚本有改动时,在新建脚本、打开其它脚本、关闭程序时,会提示当前脚本有改动,是否要保存。但是有一个BUG,就是当前脚本没有做任何改动时,有时也会弹这个提示,甚至刚打开程序,什么也不做,关闭程序,也会弹提示,这就很懵逼了。这个BUG,最开始的时候,我就发现了。只是原先简单地调试,没有找到问题的所在,以为是随机BUG,也由于影响不是很大,暂时没有...

2020-03-30 12:08:18 479

原创 服务器一秒只处理N个请求的实现

这几天,写了一个简单的登录案例,在里面就有一个功能,服务器一秒最多处理200个请求,超过的请求,会直接返回一个提示语,可以把这看作是一种熔断的处理。这个功能,只是我写的案例里,很小的一个功能,但是这个功能可以独立出来,再补充完善,完全可以做为一个项目来做,不仅可以用于安全的防护,也可以用于实现服务器的智能自动化管理的实现。关于这一点,我后面会提供一些思路。先来讲讲这个功能,我是怎么实现的。要做...

2020-01-15 18:08:25 3573

原创 测试用的案例

之前我有写过Jmeter的教程,后面又写了一个基于Selenium的工具SeleniumGUI,现在简单写了一个案例,用于jmetert和SeleniumGUI的学习。下载链接:https://pan.baidu.com/s/1NxYc0q_Vd8_Tg40a6Q7Hhw,提取码:thor。这个案例是基于spring boot和springMVC编写的,下载后就是一个jar文件。启动方式有两...

2020-01-14 18:42:49 2195

原创 SeleniumGUI的使用说明

SeleniumGUI,是我自己编写的一个工具,基于selenium的基础封装的一个带界面操作的工具。目的在于使自动化脚本的编写和管理更简单,即使是没有编程基础的人员,也可以使用这个工具编写自动化的测试脚本,并进行自动化测试github下载地址:https://github.com/kingzs/SeleniumGUI百度网盘下载地址:https://pan.baidu.com/s/170...

2020-01-10 16:34:41 2332

原创 系统架构理论

通常所讲的系统架构,一般是针对具有一定规模的分布式系统来讲的,如果系统只布署在一台服务器上,讲系统架构,就有点小题大作了。作为一名程序员,工作了一定的年限,有了一定的成长之后,要往更高的方向发展,就需要去考虑一些系统架构方面的问题,不然,到了34岁被退休,不委屈你!那么,要讲一个新东西,通常可以从问题开始讲起,我们先来看两个问题:1. 一个公司,刚刚成立,自然做什么事都要考虑成本,然后数据库使...

2019-10-27 13:55:51 2914

原创 Selenium教程系列(五):xpath进阶

现在介绍xpath里,一些常用的函数,叫方法也行,一个意思。前面的网页案例,再改下源码<!doctype html><html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body&g...

2019-09-13 10:23:38 3258 1

原创 Selenium教程系列(四):xpath基本语法

依旧拿前面写的网页案例来讲<!doctype html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content=""> ...

2019-09-08 20:56:01 2694

原创 Selenium教程系列(三):HTML和XML介绍

本来是要先讲断言的,但如果少了xpath,断言的使用就显得不够灵活,所以就先讲xpath。讲xpath就不得不提XML了,所以这篇博文基本上就是知识的扩展。xpath就是用类似文件路径的格式来定位XML文档的元素。前面也说过了,HTML也是XML文档。那么HTML和XML到底谁先被发明出来的呢?HTML先出来。起初,有人发明了一种语言用于编写网页的源码,也就是HTML(超文本标记语言)。但是呢...

2019-09-07 21:35:04 3532

原创 Selenium教程系列(二):元素查找及操作

上一篇教程,写了个Demo实现了打开百度的首页,那打开网页,肯定是要操作网页的,那怎么操作呢?一个网页,会有很多的元素,那我们第一步,就肯定是找到要操作的元素了首先,我们简单写一个html页面,新建一个记事本,然后把以下代码复制进去<!doctype html><html lang="en"> <head> <meta charset="...

2019-09-01 11:31:26 4254

原创 Selenium教程系列(一):介绍

Selenium,是一个开源的框架,主要用于做HTML页面的UI自动化测试。不过,selenium IDE在去年官方已宣告放弃维护了。官网上放着一句话,selenium IDE is Dead。Selenium IDE是火狐浏览器的一个插件,是Selenium的一个可视化编辑界面,支持直接录制脚本,然后转成其它的语言的脚本执行。不过,录制的脚本,里面有很多的废代码,一般我都不用录制的,都是直接写脚...

2019-08-31 18:49:21 104213 18

原创 JAVA框架封装(五):解析类的设计

项目已经上传到了github上面,地址:https://github.com/kingzs/kingeasy,有兴趣的伙伴,可以一起开发。每个实体类的注解,都需要解析出来,才可以使用。那么,就可以定义一个解析类,专门用来存放实体类的注解解析之后的信息,这个类就是解析类。在通用的增删查改方法里面,如果需要用到类的解析信息,只需要到解析类里拿就可以了。解析类的实现代码:package org...

2019-08-05 08:37:21 723

原创 JAVA学习(三):replaceAll的妙用:正则表达式的捕获与反向引用

在java里,替换字符串中指定的内容,有两个方法,replace和replaceAll。两个方法的不同点在于:replace不能使用正则表达式,而replaceAll可以使用正则表达式,所以replaceAll的功能更强大,与正则表达式配合,可以实现一些很强大的功能。需求:把字符串"a3344b234c333a4444a3322abc33"中的数字全部去掉,要怎么做?当然,这个用replace...

2019-08-02 23:49:57 27632 1

原创 JAVA框架封装(四):注解定义

前面讲到用Goods类,来做为例子说明整个框架功能,类里有很多的注解。那么现在就讲讲怎么定义这些注解。首先在src/main/java上右击,New ——> PackageName输入org.kingeasy.annotation,新建一个包,专门用来放注解,Finish。然后在包名上右击,New ——> InterfaceName输入RoadMapping,这...

2019-07-28 12:12:26 1505

原创 JAVA框架封装(三):maven项目构建及依赖导入

其实,一开始写这个框架,我都是以普通java项目编写的,现在,公布出来,那就不能用普通java项目的形式了,得改成maven项目。然后,我会把项目上传到github上,可以大家一起开发。把项目改成maven项目,也是各种纠结,都是pom.xml配置文件的问题,弄得脑壳疼,想死的心都有!!!其实之前也用过maven和git,但都用得比较简单。之前使用maven,也只是安装maven,然后使用开发给的...

2019-07-27 13:40:23 2765

原创 JAVA框架封装(二):整体设计

编写一个程序,最大的难点在于开始的设计,设计完了,那么基本上就完成了一大半。这指的是写应用系统,因为编码并不需要很多时间,大部分的工作都有框架帮你完成。而现在要写的是框架,并不是应用系统,但也要有开始的设计阶段,只不过,一开始的设计,不会很全面,随着编码的进行,会不断的添加新东西进来,使得框架越来越完善,功能也越来越多。所以,在最开始的起步阶段,选择一个相对简单的功能,作为切入点,这就比较重要了。...

2019-07-25 20:29:46 1155

原创 JAVA框架封装(一):缘起

在写电子商城系统之前,先封装一个java框架,既然是框架,那就必然是通用的,封装好了之后,在其它系统中一样能用。从这一点上来说,框架,比电子商城系统的意义要大得多。框架的作用是为了简化开发的,如果不能,那么这个框架,就没有存在的价值。那么,我为什么会想到要封装这样一个框架,是什么原因促使我开发这样一个框架呢?这还得从头说起。我之前有一家公司,也是做电子商城的,但是后台管理系统做得不够完善,很多...

2019-07-24 20:46:39 2154

原创 电子商城后台系统(七):前端json2table方法封装

在写代码的时候,每次写完,都要思考一下,代码要怎么样才可以具有通用性,也就是在别的地方,也一样可以使用,这就是封装。在做后台管理系统的时候,我们就会发现,后台在展示数据的时候,通常都是以表格的形式来展示数据的。而在表格中展示的这些数据,后端传过来的,通常是一个json的数组,类似于这样的:var data = [{"id":1,"name":"张三","sex":"男"}, {"id":2...

2019-04-21 16:16:31 639

原创 JAVA学习(二):如何面向对象

java是一门面向对象的编程语言,那么,什么是面向对象编程?简单点说,就是找合适的对象办合适的事。举个生活中的例子,一个人想要开发一个程序,但是他不会编程,怎么办?他可以选择自己学编程,等学会了,再开发,这是面向过程的做法,特点就是什么都自己亲历亲为,对项目的把控性会比较好,但效率低下。另外一种做法就是,他自己不会编程,那就找一个会编程的人,帮他开发。这是面向对象的做法,特点是很多事并不是自己亲自...

2019-04-20 17:53:29 528

原创 电子商城后台系统(六):商品模块的数据库及实体类设计

既然是到详细设计阶段,那肯定是要将前端和后端合起来考虑的。在前端展示的时候,都会有一个列表页面,列表页面会列出商品的一些简要信息,在用户端、后台管理系统,都会有。然后,每条简要的信息,可以点进去,查看某个商品的详细信息。对于这种情况,我之前看过一些开发的做法,都是用一个类来描述,在列表页面显示商品的时候,就把商品的所有信息都查了出来,只是前端在展示的时候,只选择一部分信息展示。但是一个商品的详...

2019-03-30 14:37:15 4968

原创 jmeter教程(二十):性能测试执行及结果分析

做性能测试,先是根据策略编写脚本,然后才是执行脚本,现在我已经编写好了脚本,一个最简单的脚本然后保存,运行,在察看结果树里,可以看到正确的响应结果现在,启一个线程让这个脚本一直循环运行,查看运行情况,因为是循环运行,HTTP请求,会执行很多次,而这些结果都在察看结果树里显示出来,就不是很好,所以在察看结果里里勾上,只显示错误的请求信息然后线程组配置成永远循环,调度器设置成6...

2019-03-17 15:28:34 46484 18

原创 jmeter教程(十九):性能测试执行前准备

在进行性能测试之前,需要先确定,在性能测试中,需要关注的点有哪些?通常情况下,需要关注的有:响应时间、吞吐量(TPS)、错误率及服务器的资源使用情况。前面的三点,可以通过jmeter的聚合报告来查看,而服务器的资源使用情况,则需要在服务器上查看,或者是通过使用一个jmeter的第三方插件来查看,这个插件就是:这两个文件,JmeterPlugings...是放在jmeter里面的,而Serv...

2019-03-16 20:40:12 2188

原创 jmeter教程(十八):性能测试项目构建

为了更好的讲解性能测试,我们编写一个简单的web应用。当然,不会写得太复杂,使用我新近写的一个框架来实现,将会变得很容易,同时,也顺便测试一下我这个框架的性能。那么,首先是环境的准备,先创建两个虚拟机,一个用来做web服务器,一个用来做数据库服务器。至于创建虚拟机,安装centos、tomcat、mysql等,在我之前的博客中都有介绍。相关安装包在我的网盘里也都有,链接:https://pan...

2019-03-09 18:08:19 1579

原创 vue.js实现只能输入数字的输入框

在菜鸟教程里,看了vue.js的教程,看完后,练练手,就试着实现了只能输入数字的输入框。在之前的博客里,用jquery也实现了这样的功能,这里用vue.js来实现,把实现的过程记录下来如果只是一个输入框,要实现就非常的简单了,输入框的内容和数据绑定,给数据加一个监听器就可以了,代码如下:<!DOCTYPE html><html><head> &l...

2019-03-03 14:58:01 41615 4

原创 jmeter教程(十七):性能测试策略

做性能测试,怎么做?肯定是要有策略的,策略怎么定?根据性能需求来定。而性能需求,可以从客户中来,可以从产品经理中来,也可以从开发来。像我们经常听到的,系统的tps要达到 XXX,用户的某一个操作要在 XXX 秒内完成,系统要能够支持 XXX 个用户同时做某个操作等等,这些都是性能需求,而不同的性能需求,在进行测试时,就要用不同的策略。那么在做性能测试时会用到哪些策略呢?1. 最基本的策略,就是...

2019-03-02 15:28:30 4167 2

原创 jmeter教程(十六):命令行执行及结果保存

我们前面所讲的,都是以图形化界面的方式,运行jmeter,这样可以实现自动化的执行一系列的测试用例,那如果我想要让jmeter在某些时机下自动的执行脚本,怎么弄?比如用jinkens自动部署项目,可能就会在down代码后,先用代码扫描工具(如sonarqube)对代码进行静态扫描,没问题就打包(当然也可能扫描和打包在同一步执行),然后部署项目,部署完之后就执行jmeter脚本进行接口自动化测试,当...

2019-02-24 13:36:21 8750

原创 jmeter教程(十五):远程执行

远程执行,就是脚本放在本地,执行却在另一台电脑上执行,当然,可以是远程多台电脑一起执行。最常见的场景就是,跑性能测试的时候,一台电脑负载不起需要的线程时,就需要两台或者更多的电脑来启动线程跑测试,线程就相当于是虚拟用户。在网上,通常会说,超过1000个线程时,就不要使用一台电脑跑了,而是选择使用多台电脑一起负载。这个说法并不全对,比如,脚本就写一条insert语句,往数据库中插入数据,启20个线程...

2019-01-27 16:34:42 5810 1

原创 jmeter教程(十四):JDBC请求详解

在上一篇博文里面,我们实现了把数据库中的数据都查询了出来,但是查询出来,是为了使用的,那要怎么使用这些数据呢?在JDBC请求的配置页面,下面有五个输入框,和一个下拉框前面两行是使用预编译sql的时候,输入参数的,这个下文中再讲。第三、四行,就是设置变量接收返回的结果的。第五行是设置执行sql的超时时间的。下拉框是选择处理sql执行后返回的结果的方式的,这个一般不用动。第三、四行都是设置变量...

2019-01-20 18:33:02 2624 3

原创 jmeter教程(十三):JDBC操作初识

在开始讲jmeter的JDBC知识前,首先,我们在mysql里,准备操作的数据。打开navicatfor mysql工具当然,你们打开,没有配置过连接,在左边就不会有连接了,这个时候,就要新建一个连接,点击连接图标这个是配置连接的页面,连接名自己可以随便取,就是你自己用来区分其它连接的一个名称。主机名或IP地址,就填mysql服务器的地址,localhost代表是本机的mys...

2019-01-19 12:57:36 1421

原创 环境维护(三):mysql安装

这篇博文讲mysql的安装和卸载,首先贴上资源地址:链接:https://pan.baidu.com/s/1MX4t_kT3iNHmtIsO67YqXQ,提取码:nn1k。在mysql目录下,共有6个文件,windows版安装包2个(32位和64位)、linux版通用安装包(只有64位的)、jdbc驱动包、一个操作mysql的图形化工具navicatformysql、最后一个是分布式mys...

2019-01-13 11:03:22 497

原创 jmeter教程(十二):流程控制终章

这篇博文要介绍的逻辑控制器有:Runtime Controller(运行时间控制器)、吞吐量控制器、模块控制器、While Controller(条件循环控制器)、ForEach Controller(遍历控制器)。Rumtime Controller,就是用来控制脚本运行多长时间的。嗯,运行一下,恭喜,你的jmeter卡死了,这个时候,要把控制台关了,才能关掉jmeter从本...

2019-01-12 13:59:11 974

原创 jmeter教程(十一):流程控制再探

上一篇博文,最后一个需求是:要循环执行N次,但第一次循环需要做一些初始化工作,而之后的循环就不需要再初始化了。我们也给出了一个解决方案,当然,要实现这个需求,可以有很多很多的方案。比如,把初始化的步骤,放到循环的前面这种的就不讨论了,我们讨论把初始化步骤放到循环里面的情况。可以使用仅一次控制器,比上一篇博文的解决方案要更简单一些。脚本树结构及执行结果仅一次控制器,就是在它的作用域...

2019-01-09 09:36:25 1040

原创 jmeter教程(十):流程控制初识

在编程中,流程分为三种:顺序流程、分支流程、循环流程。顺序流程,即自顶而下,逐句执行的流程。分支流程,即两个或多个分支,每次只走一个分支的流程。循环流程,即一段代码,重复地执行。我们前面所讲的,全都是顺序流程,现在讲一下分支流程和循环流程。流程这块,本是放到后面,等电子商城后台系统写好一些逻辑后,再以这个为例子来讲的。但是,现在有朋友需要,所以就提前讲了,所以,这里就没有例子了。都是拿之前写好的一...

2019-01-06 13:46:28 1724

原创 电子商城后台系统(五):商品模块规划

万事开头难,要编写一套系统,首先是规划。一个系统做得好不好,很大程度上取决于开始的规划好不好、设计好不好。一个电子商城的后台管理系统,首先要做的应该是帐号管理模块和权限模块。但是,我原先开始写的时候,并没有想到要做得多完善,所以是先写的业务功能模块(会员模块、商品模块、订单模块)。当然我原先写的商品模块,也没有做太多的规划,现在总结出来,自然是要有所规划。首先,我们分析一下,商品会有哪些基本属...

2018-12-23 15:38:12 4559

原创 电子商城后台系统(四):改写ajax请求函数

ajax请求,是局部刷新,页面不一定会跳转。这就面临着一个问题,如果用户的网络出现波动或是网络慢,就可能会出现用户多次点击,造成重复请求的问题。解决方法,可以在用户点击了按钮之后,先禁用按钮,等ajax请求响应了之后,再让按钮恢复可用状态。但是如果网站里ajax请求很多的话,这样做,就有点不合适了。一开始,我的想法是,能不能封装一个函数,所有的ajax请求都由这一个函数来发送,然后在这个aja...

2018-12-16 19:39:06 601

原创 电子商城后台系统(三):整站只有一个html的实现

首先建一个web项目,我这里就叫testerjs文件夹下,引入jquery.js,再新建一个base.js,用来写自己的js代码。static用来放html文件,这些html文件是用来读取到index.html里面的,在static下新建一个test.html。src下,新建一个包king.base,包下新建一个servlet——ReadFileReadFile.java代码,当然...

2018-12-15 18:29:57 2495

原创 jmeter教程(九):响应断言详解

响应断言就是判断响应信息里,是否有我们想要的信息。如果有,就说明测试通过,如果没有,就说明测试不通过,那就可能有bug了。添加断言的步骤这里依旧以前面用的模拟接口响应的java请求为例,可以看到响应断言的配置面板,和正则表达式提取器的配置面板很相似“Apply to”,和正则表达式提取器里的一样,可以断言主请求、重定向请求,及变量的值。要测试的响应字段,也和正则表达式提取器的一样,...

2018-12-09 13:50:25 17152

原创 jmeter教程(八):关联及正则表达式提取器

所谓关联,就在从前面请求的响应中提取数据,给后面的请求使用。而提取数据,则需要用到后置处理器里的正则表达式提取器。为了演示,我简单写了一个java请求,模拟接口的响应数据响应的数据为一个json,这是模拟接口查询会员列表的数据。time是查询数据花费的时间,count是查询出了多少条数据,memberList就是用户的列表信息,是个数组,数组的一个元素,就是一条用户的信息,包括用户的id、...

2018-12-08 16:48:12 1661

原创 jmeter教程(七):正则表达式简介

在后面讲关联和断言,都会涉及到正则表达式,那么,就先简单的介绍一下正则表达式吧。正则表达式的定义,这里就不说了,百度里应该有。正则表达式可以做什么?处理文本,也只能处理文本。正则表达式,也常被程序员戏称为“火星文”,从这个称谓可以看出,正则表达式很难看懂。难到什么程序呢?当你写完一个比较复杂的正则之后,回过头来看,却可能发现自己都看不懂了,正则表达式就是有这么神奇!当然,如果一个功能,用正则来...

2018-12-07 16:08:36 1806

空空如也

空空如也

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

TA关注的人

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