• 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
    ")
    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

        

  • 相关阅读:
    【python cookbook】找出序列中出现次数最多的元素
    2018/1/21 Netty通过解码处理器和编码处理器来发送接收POJO,Zookeeper深入学习
    读《风雨20年》小感
    两个知识点的回顾(const指针和动态链接库函数dlopen)
    小试牛刀
    chmod,chown和chgrp的区别
    node.js中使用node-schedule实现定时任务
    在 Node.js 上调用 WCF Web 服务
    nodejs发起HTTPS请求并获取数据
    openstack 之~云计算介绍
  • 原文地址:https://www.cnblogs.com/luoyc/p/9951234.html
Copyright © 2020-2023  润新知