levels of contents

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

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上运行

  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

 

 

 

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

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

 

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

  4.3 Charles修改响应结果

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

  4.4 Charles抓取手机上的请求

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

  4.5 Charles抓取https请求

 

  1.  计算机上的Charles安装证书,help-SSL Proxying
  2.  若要抓手机上的https请求,则手机上也需要安装证书,在手机浏览器上输入如下网址,安装证书,且需要在 设置→通用→关于本机→证书信任设置 里面启用完全信任Charles证书
  3.   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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    

 

posted @ 2018-11-13 15:45  非文艺女青年  阅读(470)  评论(0编辑  收藏  举报
levels of contents