Python自动化学习笔记(二)——Jmeter连接数据库、添加压力机、Charles抓包、Python初识

摘要:
1.Jmeter连接Mysql数据库1.1添加jar包选中测试计划,添加jar包也可以直接将jar包复制到jmeter的lib目录1.2添加mysql连接信息测试计划-配置元件-JDBCConnectionConfiguration,添加Mysql连接信息DatabaseURL:jdbc:mysql://ip:port/dbname?useUnicode=true&characterEncodin

1.Jmeter连接Mysql数据库

1.1添加jar包

选中测试计划,添加jar包

Python自动化学习笔记(二)——Jmeter连接数据库、添加压力机、Charles抓包、Python初识第1张

也可以直接将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

Python自动化学习笔记(二)——Jmeter连接数据库、添加压力机、Charles抓包、Python初识第2张

1.3添加JDBC Request

线程组-Sampler-JDBC Request

Python自动化学习笔记(二)——Jmeter连接数据库、添加压力机、Charles抓包、Python初识第3张

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

Python自动化学习笔记(二)——Jmeter连接数据库、添加压力机、Charles抓包、Python初识第4张

5、修改后重启Jmeter,点击运行-远程启动可以看到配置的压力机IP,选择对应的ip则可以启动,如果启动的脚本里有参数化文件,则在压力机的对应路径也应该有该文件

Python自动化学习笔记(二)——Jmeter连接数据库、添加压力机、Charles抓包、Python初识第5张

3.Jmeter在Linux上运行

  1.  将windows上做好的脚本拷贝到Linux下,参数文件要一起拷贝
  2.  进入jmeter/bin的目录: cd /root/jmeter/bin
  3.  执行命令:  ./jmeter -n –t /root/test.jmx -l /root/bugfree.jtl

-n 没有界面的运行

-t 指定一个运行的脚本

-l 指定测试结果的文件

4.Charles抓包

4.1模拟弱网请求   

proxy- throttle settings

Python自动化学习笔记(二)——Jmeter连接数据库、添加压力机、Charles抓包、Python初识第6张

4.2 Charles拦截请求并修改请求信息

  1.  选中一个请求,点击鼠标右键,选择Breakpoints添加断点
  2.  在浏览器中刷新该页面,Charles会跳转到Breakpoints列表

Python自动化学习笔记(二)——Jmeter连接数据库、添加压力机、Charles抓包、Python初识第7张

3. 篡改请求信息后,点击底部execute按钮

4.3 Charles修改响应结果

  1.  选中一个请求,点击鼠标右键,选择Breakpoints添加断点
  2.  在浏览器中刷新该页面,Charles会跳转到Breakpoints列表
  3.  点击execute按钮,跳转到Edit Response界面,修改响应内容,点击execute

4.4Charles抓取手机上的请求

  1.  手机和计算机需要在同一网络,在手机无线网络处配置代理,代理打开方式选择手动,ip为计算机ip,端口默认为8888
  2.  配好代理后,打开Charles会提示是否允许连接点击允许,然后就可以抓手机上的请求了

4.5 Charles抓取https请求

  1.  计算机上的Charles安装证书,help-SSL Proxying
  2.  若要抓手机上的https请求,则手机上也需要安装证书,在手机浏览器上输入如下网址,安装证书,且需要在设置→通用→关于本机→证书信任设置里面启用完全信任Charles证书
  3.  Proxy -SSL Proxying Settings,勾选enable SSLProxying,点击add,host:*,默认端口443

ps:详细配置参考

https://blog.csdn.net/lea__dongyang/article/details/73294751

4.6 Charles地址映射

Tools-Map Remote Settings,使用后记得删除配置,不然下次使用地址跳转不对时很有可能找不到原因

Python自动化学习笔记(二)——Jmeter连接数据库、添加压力机、Charles抓包、Python初识第8张

5.Python初识(输入输出,条件判断,循环,循环,格式化输出,数据类型)

一个包含知识点的小练习

需求:一个判断登录的程序:最大错误次数是3次,输入3次都没有登录成功,提示错误次数达到上限需要判断输入是否为空,什么也不输入,输入一个空格、n个空格都算空,登录成功,提示欢迎xxx,今天的日期是 xxx,可以用多个用户登录

附加功能:启动时提示是登录还是注册,提供注册功能,注册成功可以重新选择登录

1 importdatetime
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 whileTrue:
40 ##注册
41     ifispass:  
42         break   #操作完结则直接退出
43     
44     islogin=input("请选择是直接登录还是注册,登录输入1,注册输入0
")
45 
46     if islogin=="1":                     #登录        
47         count=0
48         while count<3:              #控制错误次数
49             count+=1
50             ifispass:  
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 inlogin_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         whileTrue: 
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 inlogin_info:
82                 print("用户名已存在,请直接登录")
83                 break
84             else:
85                 login_info[name_input]=password_input
86                 print("注册成功,请重新选择是否登录")
87                 break

免责声明:文章转载自《Python自动化学习笔记(二)——Jmeter连接数据库、添加压力机、Charles抓包、Python初识》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇J1939协议的解读MySQL的limit分页性能测试加优化下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【Python】opencv显示图像

import cv2 img = cv2.imread("lena.jpg") cv2.namedWindow("Image") cv2.imshow("Image", img) cv2.waitKey(0) cv2.destroyAllWindows()...

python写入sqlserver中文乱码问题

需求是python3开发,数据库是sqlserver,第一次用python操作sqlserver,写入数据时,中文全部变成了?? 试了pyodbc,但缺少sqlserver驱动 试了sqlStr.encode('latin-1').decode('gbk')等方法,都不行 在https://www.cnblogs.com/vanwoos/p/5390258...

Json对象和字符串互相转换 数据拼接 JSON使用方式

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 一、JSON字符串转换为JSON对象: eval() 和 JSON.parse eg- json字符串:   var data = '{ "name": "dran", "sex": "man" }';     var obj = eval("("+data+...

【Python学习】pip 常用命令及控制台怎么查看python 及pip 和已安装包版本号(转)

转自:https://blog.csdn.net/peiwang245/article/details/98317863 在使用python的时候,经常使用到pip这个工具,可以很方便的线上安装依赖库,当然pip还有很多参数都可以帮我们去查询一些库信息,在安装python的时候,下载带有pip的安装包就可以直接安装pip啦,当然没有带pip的,也可以通过下...

python appium自动化,走过的坑

使用的夜神模拟器,使用android5.1.1 或者真机 第一个坑:使用的android7.1.2,刚开始写好了登录的代码,需要的是滑屏进入到登录界面,结果运行的时候,没有自动滑屏就报错;因为运行时,报了一个进程被另一个程序在使用,怀疑是这个原因,又改了在进行滑屏前强行等待了几秒,还是不行;截其他界面的元素,也经常报一个UI的错,百度说这个是android...

python版的读取声音文件到常量数组

    通常我们播放声音文件的时候会通过脚本读取所有的声音文件,然后放到数组里面,然后生成int型的索引,这样播放的时候就不直接传声音名字了, 而是这样playMusic( MUICS_BG_1 }, playSound( SE_DOG ); 这样无论声音格式如何变化,代码都无需改变。 之前都是Perl写的,这次为了和其他人保持一致改成python版的了,...