1.Jmeter连接Mysql数据库
1.1添加jar包
选中测试计划,添加jar包
也可以直接将jar包复制到jmeter的lib目录
1.2添加mysql连接信息
测试计划-配置元件-JDBC Connection Configuration,添加Mysql连接信息
Database URL:jdbc:mysql://ip:port/dbname?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
Driver Class:com.mysql.jdbc.Driver
1.3添加JDBC Request
线程组-Sampler-JDBC Request
Parameter valus:参数值
Parameter types:参数类型
Variable names:保存sql语句返回结果的变量名
Result variable name:创建一个对象变量,保存所有返回的结果
Query timeout:查询超时时间
Handle result set:定义如何处理由callable statements语句返回的结果
2.Jmeter添加压力机
1、在多台电脑上安装Jmeter,自己的电脑做master,其他电脑为slave
2、多台电脑网络互通
3、启动其他电脑上的jmeter-server
4、在master上修改jmeter的配置文件,bin-jmeter.properties,找到remote_hosts,在后面加上slave的ip即可,多个slave,ip用,隔开
remote_hosts=192.168.4.78:1099,192.168.4.79:1099:,192.168.4.80:1099
5、修改后重启Jmeter,点击运行-远程启动可以看到配置的压力机IP,选择对应的ip则可以启动,如果启动的脚本里有参数化文件,则在压力机的对应路径也应该有该文件
3.Jmeter在Linux上运行
- 将windows上做好的脚本拷贝到Linux下,参数文件要一起拷贝
- 进入jmeter/bin的目录: cd /root/jmeter/bin
- 执行命令: ./jmeter -n –t /root/test.jmx -l /root/bugfree.jtl
-n 没有界面的运行
-t 指定一个运行的脚本
-l 指定测试结果的文件
4.Charles抓包
4.1模拟弱网请求
proxy- throttle settings
4.2 Charles拦截请求并修改请求信息
- 选中一个请求,点击鼠标右键,选择Breakpoints添加断点
- 在浏览器中刷新该页面,Charles会跳转到Breakpoints列表
3. 篡改请求信息后,点击底部execute按钮
4.3 Charles修改响应结果
- 选中一个请求,点击鼠标右键,选择Breakpoints添加断点
- 在浏览器中刷新该页面,Charles会跳转到Breakpoints列表
- 点击execute按钮,跳转到Edit Response界面,修改响应内容,点击execute
4.4 Charles抓取手机上的请求
- 手机和计算机需要在同一网络,在手机无线网络处配置代理,代理打开方式选择手动,ip为计算机ip,端口默认为8888
- 配好代理后,打开Charles会提示是否允许连接点击允许,然后就可以抓手机上的请求了
4.5 Charles抓取https请求
- 计算机上的Charles安装证书,help-SSL Proxying
- 若要抓手机上的https请求,则手机上也需要安装证书,在手机浏览器上输入如下网址,安装证书,且需要在 设置→通用→关于本机→证书信任设置 里面启用完全信任Charles证书
- Proxy -SSL Proxying Settings,勾选enable SSL Proxying,点击add,host:*,默认端口443
ps:详细配置参考
https://blog.csdn.net/lea__dongyang/article/details/73294751
4.6 Charles地址映射
Tools-Map Remote Settings,使用后记得删除配置,不然下次使用地址跳转不对时很有可能找不到原因
5.Python初识(输入输出,条件判断,循环,循环,格式化输出,数据类型)
一个包含知识点的小练习
需求:一个判断登录的程序:最大错误次数是3次,输入3次都没有登录成功,提示错误次数达到上限需要判断输入是否为空,什么也不输入,输入一个空格、n个空格都算空,登录成功,提示欢迎xxx,今天的日期是 xxx,可以用多个用户登录
附加功能:启动时提示是登录还是注册,提供注册功能,注册成功可以重新选择登录
1 import datetime 2 3 ##使用数组存储用户名和密码,代码太复杂,换一种方式来 4 5 ##name=['lyc','lyc1','lyc2'] 6 ##password=['123456','1234561','1234562'] 7 ##count=0 #尝试登录次数 8 ##ifpass=0 #标记是否登录成功 9 ## 10 ##while count<3: 11 ## 12 ## if ifpass: 13 ## break #登录成功则直接退出 14 ## 15 ## name_input=input("请输入用户名:") 16 ## password_input=input("请输入密码:") 17 ## if name_input.strip()=="" or password_input.strip()=="": 18 ## print("用户名或密码为空,登录失败") #判断用户名和密码是否去空 19 ## else: 20 ## for i in range(len(name)): #输入用户名和定义的用户名数组元素一一比对 21 ## if name_input==name[i]: 22 ## if password_input==password[i]: #用户名正确时判断对应的密码是否一致 23 ## ifpass=1 24 ## print("登录成功") 25 ## break 26 ## else: 27 ## print("密码错误,登录失败") 28 ## break 29 ## else: 30 ## print("用户名错误,登录失败") 31 ## count+=1 32 ## if count==3: 33 ## print("错误次数达到上限") 34 35 36 #使用字典来存账户密码 37 login_info={"lyc1":"lyc111","lyc2":"lyc222","lyc3":"lyc333"} 38 ispass=0 #标记是否操作完结 39 while True: 40 ##注册 41 if ispass: 42 break #操作完结则直接退出 43 44 islogin=input("请选择是直接登录还是注册,登录输入1,注册输入0\n") 45 46 if islogin=="1": #登录 47 count=0 48 while count<3: #控制错误次数 49 count+=1 50 if ispass: 51 break #操作完结则直接退出 52 53 name_input=input("欢迎登录,请输入用户名:") 54 password_input=input("请输入密码:") 55 if name_input.strip()=="" or password_input.strip()=="": 56 print("用户名或密码为空,登录失败") #判断用户名和密码是否去空 57 else: 58 if name_input in login_info: 59 if password_input==login_info[name_input]: #用户名正确时判断对应的密码是否一致 60 ispass=1 #登录成功,标记完结 61 print("登录成功") 62 print("欢迎%s,今天的日期是%s"%(name_input,datetime.datetime.today())) 63 break 64 else: 65 print("密码错误,登录失败") 66 continue 67 else: 68 print("用户名错误,登录失败") 69 70 else: 71 print("错误次数达到上限") 72 break 73 74 else: #注册 75 while True: 76 name_input=input("欢迎注册,请输入用户名:") 77 password_input=input("请输入密码:") 78 if name_input.strip()=="" or password_input.strip()=="": 79 print("用户名或密码为空,请重新输入") #判断用户名和密码是否输入为空 80 continue 81 elif name_input in login_info: 82 print("用户名已存在,请直接登录") 83 break 84 else: 85 login_info[name_input]=password_input 86 print("注册成功,请重新选择是否登录") 87 break