jmeter压测数据库,抓包工具,python基础

时间:2021-03-10 07:20:13

jmeter压力测试

前提场景的设置:单场景(单个接口进行压力测试一个请求)或混合场景(有业务流程的场景进行压力测试多个请求),压测时间一般在5--1515分组具体看需求。

jmeter压测数据库,抓包工具,python基础

数据准备:数据量少和数据量大的情况下,测试的结果是不一样的,在设计场景的时候是要考虑到这种情况的,要测试数据库中数据量大和数据量小的情况,如果是要测试数据量大的情况下,就要造数据了,造数据可以使用jmeter,操作数据库来造数据,也可以使用python连接数据库,批量的造数据。

查看压测结果:tps每秒钟处理的请求数,每个请求处理的响应时间,并发用户数。

jmeter压测数据库,抓包工具,python基础

jmeter断言

用来验证结果是否正确,如果正确的话,就代表这个请求的返回是正确的,如果没有的话就代表这个请求的结果和我们预期的不一致,这样我们就可以通断言来检查返回结果,测试是否通过。

jmeter压测数据库,抓包工具,python基础

jmeter压测数据库,抓包工具,python基础

jmeter数据库的操作

1.导入jdbc的jar包,因为jmeter本身不能直接连接mysql,所以需要导入第三方的jar包,来连接mysql。直接在测试计划下面添加mysql的包,线程组--右键添加--配置元件

jmeter压测数据库,抓包工具,python基础

jmeter压测数据库,抓包工具,python基础

2.创建数据库连接配置,mysql的url、端口号、账号、密码

jmeter压测数据库,抓包工具,python基础

3.写sql,执行sql

jmeter压测数据库,抓包工具,python基础

4.查看结果

jmeter压测数据库,抓包工具,python基础

抓包工具有哪些:常见的抓包工具有fiddler,wireshark ,charles, HttpWatch, firebug 等

Charles的基本功能使用

Charles简介:charles是一款常用的截取网络抓包的工具,因为他是基于 java 开发的所以跨平台,Mac、Linux、Window下都是可以使用的,确保安装之前已经安装了JDK。Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。

手机端使用charles进行抓包:

第一步,在charles里设置允许手机联网的权限;你需要把charles设置为允许的状态并且设置允许的端口号,这样手机端才能正常的接入;

在Charles的菜单栏上选择“Proxy”->“Proxy Settings”,填入代理端口号(注意,端口不一定填写8888,也可以写别的端口,但是需要记住因为这里设置的允许接入的端口,手机端配置的时候需要用到),并且勾上”Enable transparent HTTP proxying” 就完成了在Charles上的设置。如下图;

jmeter压测数据库,抓包工具,python基础

查看当前电脑ip地址:可以直接用cmd    ipconfig  进行查看地址。或者直接在Charles--help--Local IP Address 进行查看地址。(ip地址需要与手机配对)

可以任意打开一个浏览器输入一下地址进行验证,Charles会弹出提示。

jmeter压测数据库,抓包工具,python基础

第二步,把手机按照charles的IP和端口进行配置;(手机和电脑网络在同一个wifi)

在iPhone的 “设置”->“无线局域网“可以看到当前连接的wifi名,点击右边的详情键,进入到连接上的wifi的详细信息,包括IP地址,子网掩码等信息。在其最底部有“HTTP代理”一项,我们将其切换成手动,然后填上Charles运行所在的电脑的IP,以及端口号填写你在charles的端口号

jmeter压测数据库,抓包工具,python基础

第三步,手机配对成功后,charles还会弹窗是否允许;

设置好之后,我们打开iPhone上的任意需要网络通讯的程序,就可以看到Charles弹出iPhone请求连接的确认菜单

如上图的弹窗,点击允许即可;此时已经配对成功,开始愉快的抓包吧;

python基础知识

Python特点:优雅,明确,简单易懂,第三方库比较多。

paython开发的应用:网络应用,包括网站、后台服务等等;日常需要的小工具,系统管理员需要的脚本任务等等;另外就是把其他语言开发的程序再包装起来,方便使用。

Python的缺点:第一个缺点就是运行速度慢,第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码。

python 的基础知识

python中有一以下几种数据类型:Numbers(数字),string()--字符串,Tuple(元组),list--数组或列表,sets(集合)

转义符 '\'自然字符串, 通过在字符串前加r或R。 如 r"this is a line with \n" 则\n会显示,并不是换行。

Numbers(数字):int、float、bool、complex(复数),

string()--字符串:str用单引号(' ')或双引号(" ")括起来,同时使用反斜杠(\)转义特殊字符,

list(列表):列表是写在方括号之间、用逗号分隔开的元素列表,列表中元素的类型可以不相同。例如:a = ['him', 25, 100, 'her']

Tuple(元组):与列表类似,不同之处在于元组的元素不能修改。元组写在小括号里,元素之间用逗号隔开。例如:a = (1991, 2014, 'physics', 'math')

sets(集合):是一个无序不重复元素的集。基本功能是进行成员关系测试和消除重复元素。可以使用大括号 或者 set()函数创建set集合,注意:创建一个空集合必须用 set() 而不是 { },因为{ }是用来创建一个空字典,例如:student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}

python注释:单行注释以#开头,多行注释用三个单引号(''')或者三个双引号(""")将注释括起来。

python算数运算符

jmeter压测数据库,抓包工具,python基础

python比较运算符

jmeter压测数据库,抓包工具,python基础

python赋值运算符

jmeter压测数据库,抓包工具,python基础

python位运算符

jmeter压测数据库,抓包工具,python基础

python逻辑运算符

jmeter压测数据库,抓包工具,python基础

条件判断:if语句

age = 20

if age > 18:

   print('your age is', age)

备注:定义一个数值,判断当前给出的数值是否与定义的相同,相同就执行print语句。或者: if else

age = 15

if age > 18:

   print("your age is", age)
else:
  print("输出错误")
多重判断: if --elif--else
age = 3
if age>=18:
  print("aaaa")
elif age>=10:
  print("bbbb")
else:
  peinr("ccccc")

备注:先执行if条件,通过就直接打印print,如不通过执行elif语句,通过就打印,不通过就在执行else语句。

python循环,有两种循环for和whlie

break:立即结束循环,不管循环有没有完成

continue:结束本次循环,继续进行下一次循环

whlie循环

while 判断条件:

  statements  

jmeter压测数据库,抓包工具,python基础

while循环,要带上计数器,如果使用continue,计数器不会累计,可能会产生死循环

jmeter压测数据库,抓包工具,python基础

for循环

jmeter压测数据库,抓包工具,python基础

登录小程序

jmeter压测数据库,抓包工具,python基础

备注:for else语句可以总结成以下话。


如果我依次做完了所有的事情(for正常结束),我就去做其他事(执行else),若做到一半就停下来不做了(中途遇到break),我就不去做其他事了(不执行else)。只有循环完所有次数,才会执行 else 。break 可以阻止 else 语句块的执行。