自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

竹狼的博客

测试的自我救赎,欢迎交流V:806026945

  • 博客(53)
  • 资源 (5)
  • 收藏
  • 关注

原创 mysql存储过程及控制语句

一、变量及赋值变量分类局部变量用户变量会话变量全局变量1、局部变量局部变量一般只在begin…end代码块中有效,作用域仅限于该语句块,在该语句执行完毕后,局部变量就消失了,局部变量的定义语法:DECLARE var_name data_type [ DEFAULT value ];说明 :declare为定义变量的关键字,var_name为自定义的变量名称,data_type为变量的类型,整型就是int,字符串就是varchar或者char类型等等,default value给变

2021-12-08 15:46:41 1357

原创 jmeter提取结果中的多个值作为变量

在用jemter编写性能测试脚本过程中,往往有很多接口需要依赖上个接口的返回值,当只需要上个接口中的一个返回值时,其实很方便处理。相对难一些的是依赖上个接口返回值是多个的情况,此时用两种方法获取接口返回值中多个变量的值。场景描述:现在有一个接口返回值如下,后续接口中,需要用到counterCode和counterName两个字段json提取器提取多个结果值在jmeter中添加json提取器,在json提取器中变量名称中填写多个变量值,json表达式同样填写多个表达式,且json表达式和变量值一一对应,

2021-10-15 09:44:10 1300

原创 Moco接口框架的应用实战

一、moco框架的基本功能moco是一个模拟接口请求和发送的测试框架,包括但不局限于get请求,post请求,cookies和heades等等,是github上一个开源的测试框架,官网:https://github.com/dreamhead/moco,下载moco框架地址:https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/1.2.0/下载moco框架,下载完成后是一个jar包,将该jar包导入到idea中在与moco

2021-09-12 11:08:51 685

原创 JAVA构造性能测试数据

一、idea配置pom.xml文件1. 打开idea编辑器,新建一个Maven项目,File–>New–>Project–>Maven,选择Maven,点击next。2. 在Name编辑框中输入项目的名称,这里是dataProject,点击finish3. 当项目建成以后,需要配置pom.xml文件,配置方法:百度搜索:https://mvnrepository.com/,进入到maven的仓库页面搜索我们需要的包选择javafaker的版本,并复制对应的版本的依赖

2021-08-29 14:37:00 262

原创 性能测试之cpu篇

1. cpu介绍CPU利用率主要依赖于是什么资源在试图存取.内核调度器将负责调度2种资源种类:线程(单一或者多路)和中断.调度器去定义不同资源的不同优先权.以下列表从优先级高到低排列:Interrupts(译注:中断) - 设备通知内核,他们完成一次数据处理的过程.例子,当一块网卡设备递送网络数据包或者一块硬件提供了一次IO 请求.Kernel(System) Processes(译注:内核处理过程) - 所有内核处理过程就是控制优先级别.User Processes(译注:用户进程) - 这块涉

2021-08-08 16:01:42 2697

原创 linux性能监控之概述篇

一、 性能监控介绍性能优化就是找到系统处理中的瓶颈以及去除这些的过程,多数测试人员相信看一些相关的”cook book”就可以实现性能优化,通常通过对内核的一些配置是可以简单的解决问题,但并不适合每个环境,性能优化其实是对OS 各子系统达到一种平衡的定义,这些子系统包括了:CPUMemoryIONetwork这些子系统之间关系是相互彼此依赖的,任何一个高负载都会导致其他子系统出现问题.比如:大量的页调入请求导致内存队列的拥塞网卡的大吞吐量可能导致更多的 CPU开销

2021-07-23 10:35:34 176

原创 jmeter非GUI运行接口自动化和性能自动化

一、 为什么要非GUI运行jmeter脚本?在谈论为什么用非GUI运行jmeter脚本前,先看看GUI运行脚本会有什么缺点?GUI页面本身就是图形界面,会占用很多系统本身的资源,当长时间运行是,运行的结果占用的内存就会很高。既然是GUI界面,那就需要有页面交互,如果没有页面交互,就没有办法运行,就会被限制持续集成,当我们在jmeter中编写好脚本后,可以通过ant集成到jenkins集上,进而通过持续集成,持续部署。但是GUI界面无法做到。基于以上几点,在运行脚本的时候,更多的时候选择用非GU

2021-04-06 19:49:14 421

原创 java学习笔记十,数组创建过程及使用

数组的创建过程在定义数组的时候,往往分为好几个过程数组的定义定义数组的时候,一般是先声明数组的类型,如int[] a; 表示声明一个整型数组,数组名为a,此时在堆空间中会存放一个变量a数组的赋值当数组声明以后,就是给数组赋值,可以直接给数组赋值,也可以通过new给数组指定大小,再赋值直接给数组赋值a={1,2,3,4,5}这种方式是直接给数组赋值,一旦赋值完毕后,数组的长度大小就被确定直接给数组赋值a=new int[10];此时会在堆空间中创造出一片空间,该空间可以存储

2021-02-09 11:32:45 371

原创 Docker部署inluxdb,grafana,prometheus环境

创建网络查看现有网络:docker network ls[root@zhulang home]# docker network lsNETWORK ID NAME DRIVER SCOPE874979f64b45 bridge bridge local3eaf2e5dea55 host host local962e1d6cfa34 none null local创建网络:docker networ

2021-02-08 15:25:59 559

原创 jmeter链接数据库数据实现参数化

一、使用jmeter链接数据库目前mysql数据库版本分为5.7版本和8.0版本,jmeter要链接两个不同的数据库版本,则需要不同的驱动包将从官网下载下来的驱动包解压在自己电脑的任意目录下,下载地址:https://dev.mysql.com/downloads/connector/j/,将解压后的jar包拷贝到jmeter/lib目录下,也可以不拷贝到jmeter的lib目录下,直接从jemter中添加重新启动jmeter,选中测试计划,选中下方的浏览按钮,选择jar包所在的路径,添加进来

2021-02-08 14:34:50 1523

原创 java学习笔记九:数组

数组含义有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名数组特征数据类型相同可以通过下标访问数组元素有一定的先后次序声明数组1.声明数组语法dataType[] arrayRefvar2.定义数组int[] nums;3.创建数组nums=new int[10]; // 数组的长度为10,存放的int类型数字为10个4.定义数组和创建数组可以合并起来写int[] n=new int[10];5.数组元素赋值n[0]=1;n[1]=2;

2021-02-06 22:01:33 65

原创 java学习笔记八:方法的重载及可变参数

重载的定义重载就是在一个类中,有相同的函数名称,但形参不同的函数方法重载的规则方法名称必须相同参数列表必须不同(参数个数或者参数类型或者参数顺序不同)返回类型可以相同也可以不相同可变参数在指定参数类型后加一个省略号(……)一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前申明public class args { public static void main(String[] args) { put( 1.0,2.0,3

2021-02-06 12:09:41 93

原创 cypress学习笔记二:目录结构及登录测试用例

cypress安装完成后,通过编译器打开cypress的安装目录,可以看到如下结构integration一般测试用例会写在integration下面,可以在此文件夹下面新建目录方便管理用例,也可以直接在此文件加下直接写用例fixtures存放测试数据的地方plugins存放插件的地方,插件可以是自己编写的,也可以是第三方登录测试用例describe("登录功能",()=>{ context("输入用户名和密码",function (){ it('登录成功'

2021-02-06 10:19:43 596

原创 java学习笔记七:方法的定义与调用

一、方法的定义一段用来完成特定功能的代码片段,定义方法一般包括以下几个部分:修饰符:可选,定义该方法的访问类型,告诉编译器如何调用该方法。返回值类型:可能会有返回值,有返回值的方法在方法定义上加上返回值的类型;也可能没有返回值,没有返回值的方法需要加上关键字void方法名:方法的实际名称,方法名和参数表共同构成方法签名参数类型:实际上是一个占位符,当方法被调用的时候,将值传递给参数,这个值被称为实参,对应的参数称为形参;参数列表指的是参数类型,顺序,参数个数;参数是可选的,方法也可以不包含任何参

2021-02-04 12:51:38 128

原创 python中requests.post方法中的data和json的区别

在通过requests.post()进行POST请求时,传入参数有两个,一个是data,一个是json。那么如何区分他们呢一,请求头的数据格式为Content-Type=application/json如果请求头的数据格式为Content-Type=application/json,表明我们要传入的参数是序列化后的 JSON 字符串。然而在python中,我们的参数往往写成以下格式:data = { "loginType": 0, "password": "c9e672

2021-02-04 10:46:41 6924

原创 java学习笔记六:打印九九乘法表

九九乘法表代码public class printTable { public static void main(String[] args) { for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { System.out.print(j+"*"+i+"="+(i*j)+"\t"); // '/t'表示输出空格 }

2021-02-01 19:27:51 165

原创 python中的排列组合,itertools模块和scipy模块

在实际工作中,我们往往需要计算一些数据的排列和组合情况,比如一组参数中有多少种组合方式,而python已经为我们提供了一个内置模块itertools。一、itertools用法itertool模块中提供了两个常用的函数,分别为combinations(iterable, k)和permutations(iterable, k)。combinations(iterable, k)即我们平常说的组合,就是不分顺序的,数学上表达为CmkC^{k}_mCmk​,其中k就是参数中的k,m指的是可迭代的对象,可

2021-02-01 18:51:39 944

原创 java学习笔记五:流程控制

java语言中代码执行主要有以下几种结构一、顺序结构从上到下依次运行,由若干个依次执行的处理步骤组成二、if选择结构if单选择结构,语法格式为:if(布尔表达式){ 执行体 }example:import java.util.Scanner;public class IfStructure { public static void main(String[] args) { Scanner scan=new Scanner(System.in);

2021-01-31 21:35:24 70

原创 cypress学习笔记一:环境安装

cypress安装有好几种方式,这里用npm安装一、安装node.js下载地址:http://nodejs.cn/download/,点击windows安装包,会自动根据你的系统来下载对应的msi文件二、安装node.js直接点击msi文件,傻瓜式安装,一直下一步,直到结束三、验证node.js输入node --version和npm --version后,出现了各自的版本信息就表示node.js安装成功四、安装cypress在自己的电脑中新建一个空文件夹,文件夹的名字不要为cypre

2021-01-31 08:27:11 704

原创 java学习笔记四:javaDoc

javaDoc是一种文档注释,文档注释就是在开始的 /** +回车之后,第一行或几行是关于类、变量和方法的主要描述,在类上面的是类的描述,在方法上面的是方法的描述通过命令行生成javaDOC文档package operator;/** * @author zhulang * @version 1.0 * @since 1.0 */public class Doc { String name; /** * @param name * @return

2021-01-30 21:20:13 96

原创 java学习笔记三:包机制

为了更好的命名,java提供了包,用于区别类名的命名空间,包的本质就是文件夹包名: 公司域名倒置作为报名百度地址为:www.baidu.com,则包名为:com.baidu.www同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。包的语法格式为:package pkg1[.pkg2[.pkg3…]];包声明应该在源文件的第一行,每个源文件只能有一个包声明,这个文件中的每个类型都应用于它包的

2021-01-30 20:31:22 51

原创 java学习笔记二:运算符

在java中有以下几类运算符算术运算符:+ ,-,*,/,%,++,- -/表示的是在两个int型的数据相除时,结果向下取整public class demo01 { public static void main(String[] args) { int a=6; int b=4; System.out.println(a/b); // 实际结果为1.5,在java中“/”表示向下取整,所以输出结果为1 }}%表示模运算:

2021-01-30 13:08:57 83

原创 java学习笔记一:基本数据类型

一、基本数据类型java中存在8大基本数据类型,每种类型占用字节如下:字节型:byte---->1字节短整型:short—>2字节整型: int—>4字节 长整型: long–> 8字节 单精度浮点型: float—>4字节 双精度浮点型: double—>8字节 字符型:char—>2 字节 布尔型:boolean---->1字节 true 或 falsechar 代表字符型,实际上字符型也是一种整数类型,相当于无符号整数类型二、数据类

2021-01-29 18:19:38 131

原创 pytest自动化测试四:参数化parametrize

在做自动化测试的时候,很多时候我们测试步骤一样,但是测试数据不一样,此时就需要用到参数化。那参数化具体是把什么进行参数化了,也就是参数化的本质就是对列表中的对象依次循环,然后赋值给对应的参数,在python中可以循环的对象有列表,元组,字典一、对列表进行参数化import pytestdef add(a,b): return [email protected]('a,b,excpet',[[1,2,3],[3,6,9],[7,5,10]])def test_add(a

2021-01-24 12:47:34 357 2

原创 pytest自动化测试三:测试用例标记

pytest自动化测试中,有时候我们并不需要对所有的用例全部执行,比如在写测试用例调试的时候,或者冒烟测试的时候。而pytest就给我们提供了这样一种机制:有选择的挑选用例去执行。pytest中标记用例分为自定义标记和内置标记**一、 如何标记在pytest中,标记用例使用的是marker,一个测试函数可以有多个marker,一个marker可以标记多个测试函数二、标记分类在pytest中,标记分为自定义标记和内置标记。自定义标记就是自己定义标记的名称,内置标记就是用官方已经定义好的关键字来标记

2021-01-23 13:35:27 655

原创 pytest自动化测试二:命令行选项

在运行pytest测试用例的时候,可以在命令行加上一些参数,这样在控制台上显示的信息更清楚详细,可以根据需要选择不同的参数呈现不同的结果一、-v或者–verbose选项含义:使用-v可以得到更完整的前后对比信息;格式:pytest test_two.py -v 或者pytest -v test_two.py 。-v参数既可以放到测试文件前面,也可以放到测试文件后面二、–collect-only选项含义:展示给定配置下哪些测试用例会被运行,注意,collect前面是2个-;格式:pytest

2020-11-22 13:19:50 1080

原创 pytest自动化测试一:pytest的运行方式

当我们在执行pytest的时候,可以指定参数,也可以不指定参数一、如果不提供任何参数,那么pytest会在当前目录及子目录下寻找以test_开头或者以_test结尾的测试文件,且该文件中以test_开头或者_test开头结尾的测试函数从图中我们可以看出,测试文件只有以test_开头或者以_test结尾的测试文件才会被执行,图中有5个测试文件,但是从执行结果可以看出只执行了4个文件,这4个文件的特点就是test_开头或者_test结尾的文件二、当我们指定文件的时候,文件里面的函数又是怎么执行的呢?

2020-11-22 11:15:11 3342

原创 python中的OS模块

OS模块经常用到操作目录等方面,列举几个经常用到的方法一、创建目录import osos.makedirs('tmp/python/fileop',exist_ok=True)会在当前工作目录下面创建 tmp目录,在tmp目录下面再创建 python目录,在Python目录下面再创建fileop目录当前的工作目录为:D:/genlot/Webmis_API ,注意工作目录不包含最后的文件名二、获取当前文件的目录名第一种方法:import osml=os.getcwd()print("

2020-11-18 11:51:06 166

原创 python接口自动化获取响应数据

做接口测试的时候,经常需要json处理,那么json处理到底什么情况下需要用到了一、在做接口测试传参的时候,我们往往需要定义一个字典,含有key和value的值,如下:data={ "gameId": "2", "issueType": "5", "operatorId": "87"}然后请求的时候,会把data赋值给post请求,然而这样是错误的,data的数据类型为dict,接口请求的数据类型为字符串,只不过是json格式的字符串,但是本质是字符串是不会改变的,故需要通过json.dun

2020-11-11 11:24:41 3279 2

原创 python提取接口返回的字段值

在做接口测试的时候,我们往往需要把某个接口的返回值提取出来作为下一个接口的入参,那么用python代码如何实现呢一、接口返回的数据类型,通过验证发现接口返回的数据类型为:<class ‘dict’>,即字典类型的数据dt = { "msg": "查询成功", "code": 0, "data": [ { "issue": "201110025", "draw": "155937" }

2020-11-11 10:30:05 9464

原创 MySQL删除表中的数据

Mysql删除表中的数据有三种方法,分别是delete ,drop,truncate。一、delete删除表中的数据delete好from结合使用,格式一般为:delete from 表名 where 条件,delete删除数据是将Mysql表中的数据一行一行的删除,不删除表的结构,也不释放表的空间,可以回滚(rollback)二、drop删除表中的数据drop删除表的格式为:drop table 表名,drop一般将表的数据直接删除,以及删除表的结构同时释放空间,删除数据后无法找回三、trunc

2020-09-14 19:46:36 43476

原创 Linux权限

linux文件权限分为两中:一种是文件权限;一种是所有者权限一、文件权限1、只修改当前目录本身的权限文件权限命令:chmod [可选项] <file…>,文件为:a可选项:一般用的不多,常用的是-R,表示以递归的方式对目前目录下的所有档案与子目录进行相同的权限变更mode:格式为[u|g|o|a][[+|-|=][r|w|x|]u 表示该档案的拥有者g 表示与该档案的拥有者属于同一个群体(group)者o 表示其他以外的人a 表示所有(包含上面三者)+ 表示增加权限,- 表

2020-09-12 10:53:05 156

原创 python实现往mysql数据库批量插入数据

用python往mysql插入数据首先必须要安装pymysql库,安装命令:pip install Pymysql,注意Pymysql中的"P"要大写插入数据格式为:fsy001到fsy100,总共字符数位6位,为了保持总字符数不变,需要用到if判断import pymysql'''连接数据库,包括数据库ip、端口、用户名、密码、数据库'''conn =pymysql.connect(host='localhost',user='root',passwd='password',db='databas

2020-08-01 21:51:08 2759 2

原创 Python学习笔记之CSV文件

在接口测试中,我们经常要操作csv文件,那么操作csv文件需要注意哪些事项呢一、读取csv文件的数据代码:import csv'''打开csv文件'''with open(r'C:\Users\fsy\Desktop\csv文件.csv')as f: '''创建文件读取器,并传入文件对象f''' readercsv = csv.reader(f) '''reader返回对象是一个列表,或者说是一个可迭代对象,用for循环取出列表中的数据''' for row in

2020-06-20 22:23:21 264

原创 Jmeter之Cookie跨线程调用

测试中往往会有一个这样的场景:首先登陆,登陆之后再去访问别的业务,这里涉及到登陆的接口,业务接口。一般我们会把登陆的接口写在setup线程组里面,业务接口写在线程组里面,如图为什么要把HTTP Cookie管理器放在外面了,因为一个测试计划只能有一个cookie管理器,该cookie管理器可以作用于整个测试计划里的请求,如果想要请求单独用自己的cookie,则需要在请求头单独添加每个线程组里的cookie可以通用,如果想把一个线程组里的请求返回的cookie用在另一个线程里面请求,则需要先把该请求返

2020-06-05 20:06:19 975

原创 Python学习之requests的鉴权

在用requests做接口测试中,往往提示我们需要鉴权,鉴权我们往往有以下几种方法一、cookie鉴权cookie鉴权一般用于登录后的请求,在登录请求后,服务器会返回一个cookie给客户端,客户端在之后的请求中,携带服务器返回的cookie,这样以达到服务端识别该请求是经过服务器认可的二、token鉴权token鉴权是客户端在首次登陆以后,服务端再次接收http请求的时候,就只认token了,请求只要每次把token带上就行了,服务器端会拦截所有的请求,然后校验token的合法性,合法就放行,不合

2020-06-03 22:38:45 2439

原创 Python学习之requests的请求方法

requests是用python做自动化必须用到的第三方包,需要自己安装,安装命令为:pip install requests,安装完成后,需要导入方可使用,一般使用requests包下面的get方法和post方法,其他不常用一、requests中的get方法get方法源码def get(url, params=None, **kwargs): r"""Sends a GET request. :param url: URL for the new :class:`Request` o

2020-06-01 21:31:04 734

原创 Python学习之HTMLTestRunner模块

在用unitetst做接口测试完成后,我们需要把接口测试的结果发送给领导查看,那么总不能把接口运行的结果截图给领导看,因此我们需要专门生成测试报告,并发送给领导查看,Python中的HTMLTestRunner很好的为我们提供了这个功能一、HTMLTestRunner的安装下载HTMLTestRunner安装包放到python\Lib\site-packages的目录下安装完成后,可在目录:D:\python\Lib\site-packages下看到安装的HTMLTestRunner模块二、生成测

2020-05-31 16:36:27 833

原创 Python中的unittest模块

unittest是Python内置的模块,在测试中只需要导入unittest模块,就可以使用,unittest包含四大组成部分,分别是测试固件、测试用例、测试套件、测试执行器一、测试固件测试固件分为执行前的部分和执行后的部分,执行前的部分叫做setUp(),一般用作打开浏览器,链接数据库等真正开始测试之前使用;执行后的部分叫做tearDown(),主要用作关闭浏览器,断开数据库链接等部分setUp()和teardowm()在执行的时候,每执行一个用例的时候就需要打开一次和关闭一次,就是说,如果有3个

2020-05-26 23:41:56 1545

原创 jmeter之文件上传下载

一、jmeter文件上传jmeter上传文件的时候,需要切换到http请求中文件上传页签在高级页签里,选择java二、jmeter文件下载jmeter本身是不支持将文件保存到本地的,这里需要写java代码,添加beanshell后置处理器执行接口后到对应的目录查看下载的文件...

2020-05-24 15:08:29 311

unittest测试报告

支持python2,python3,不需要更改任何设置,下载即可使用,支持饼图查看,鼠标按键可联动。。

2020-11-11

通达信自动画笔指标,各个周期互补影响

提供通达信缠论自动画笔指标,精度很高,可以在不同的周期来回切换分析,亲测可用,没有发现错误的地方,安装有点儿麻烦

2020-08-23

HTMLTestRunner.py

用Python3中的unittest做接口测试的测试报告模板,下载后可直接在python3上使用,无需修改内容。

2020-05-31

jemter和ant整合的构建文件build.xml

通过jmeter配置发送邮件,实行jmeter和ant的整合,在cmd中构建脚本进行自动化测试并把结果发送给相关的人

2020-05-24

python自动化测试开发(20170911).pdf

python自动化测试课程系列从零开始学习,涉及接口基础知识,接口自动化,ui自动化,jmeter和postman工具的使用

2019-08-20

空空如也

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

TA关注的人

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