1.jmetr分布式压测
1.在其他压力机bin目录启动jmeter-server
2.在主控机jmeter的配置文件jmeter.properties找到remote_hosts,配置压力机的ip:1099(端口号),添加多个时用“,”隔开;配置完成后,重启jmeter,在运行-远程启动中启动压力机进行压测
2.jmeter在linux上运行
1.首先在windows图形化界面做好脚本,并发数,运行时间等
2.将做好的脚本拷贝到linux中jmeter的bin目录,在bin目录中运行以下命令:
jmeter -n -t ****.jmx -l *****.jtl
- -h 帮助 -> 打印出有用的信息并退出
- -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
- -t 测试文件 -> 要运行的 JMeter 测试脚本文件
- -l 日志文件 -> 记录结果的文件
- -r 远程执行 -> 启动远程服务
- -H 代理主机 -> 设置 JMeter 使用的代理主机
- -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
3.打开 JMeter GUI 界面 -> 测试计划 -> 添加线程组 -> 添加聚合报告 -> 点击"所有数据写入一个文件"下的 "浏览..." 按钮找到你刚生成的 jtl 文件就可以对执行结果进行直观分析了
3.抓包
1.定位问题
2.篡改请求
手机抓包:
1、打开charles,必须保证手机和电脑是在一个局域网里面
2、手机设置代理
服务器写你电脑的ip
端口号,默认是8888
soapui
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
天气预报的接口地址。
1、sopaui新建一个soap项目
2、在wsdl地址这里,填上 wsdl接口的地址
3、左边是请求的数据,右边是返回的数据
4、python(部分内容转载)
自动化测试就是写代码帮你测试,目前主流的脚本语言就是java和Python;开发所用到的语言和自动化测试所用到的语言是没有关系的,例如软件产品使用java开发的,照样可以使用Python进行自动化脚本开发
python目前逐渐变得很火,其语法简单第三方库非常丰富,应用范围也很广泛:网络爬虫、数据分析、web开发、人工智能、自动化运维、自动化测试、嵌入式、黑客都可以用Python,但是Python有不仅仅属于脚本语言,所谓的脚本语言指的是功能单一的语言,比如:shell
计算机是只认识二进制的,所以只能通过编译器进行编辑,将代码编译为电脑能够直接识别的二进制指令,目前的语言按照编译情况分为两类:编译型语言和解释型语言;所谓的编译型语言就是在运行代码之前,要先进行编译,在进行运行,例如c、c++、c#,这类语言往往是编译时间较长,但是运行起来比较快。所谓的解释型语言就是运行的时候进行编译(指令翻译),例如:python、ruby、shell、java,此类语言运行效率较慢,其中java在运行前也是需要编译的,但是也归为解释型语言,原因是java编译后的文件为.class文件,.class在运行前也是需要jvm进行转义才能够运行的
python语法:
变量:
变量是干嘛的呢?说的简单点,就是存东西,供后面来用的。python中定义变量很简单,一个等号搞定,也不需要指定数据类型,直接定义就好,值得一提的是python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量的话,新的变量通过之前那个变量知道那个变量值的内存地址存起来,而不是指向的之前那个变量。代码如下:
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
python中的单引号、双引号和三引号(就是三个单引号):
1
2
3
4
5
6
7
|
msg = "I'm Sriba." #有单引号,所以外面用双引号
info = 'Python comments ues "#".' ##有双引号,所以外面用单引号
new_msg = '''I'm Sriba, i love "Python".'''#有双引号和双引号,所以外面用三引号
'''
上面的代码是说明单引号、双引号和三引号的
这一段是注释,说明三引号也有多行注释的功能
'''
|
python输入输出:
python怎么来接收用户输入呢,使用input函数,python2中使用raw_input,接收的是一个字符串,输出呢,第一个程序已经写的使用print,代码入下:
1
2
|
name=input('Please enter your name:') #把接收到的值赋给name变量
print(name)#输出接收到的输入
|
input在接收输入的时候,是可以看到你输入的值的,如果是输入密码这样的呢,不想让别人看到你的密码,怎么办呢,就需要用到一个标准库,getpass,什么是标准库呢,就是不需要你再去安装,装完python就有的库,就是标准库,getpass就是一个标准库,导入进来之后,直接使用getpass.getpass方法就可以在输入的时候,不回显了,代码如下:
1
2
3
|
import getpass #导入getpass模块
password = getpass.getpass('Please enter your password:') #接收输入的密码
print(password)
|
python条件判断
python中条件判断使用if else来判断(且只有if else),多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样,否则就怎么怎么这样,格式如下:
1
2
3
4
|
if 明天下雨:
那么明天带伞
else:
明天不带伞
|
python中是以缩进来表示代码块的,这样看起来代码很有条理,比如说上面的例子,如果明天下雨,那么明天才会带伞,明天带伞就相当于if的儿子,所以也可以认为有缩进的都是有父子关系的,写个实际点的例子,如下:
1
2
3
4
5
6
7
8
9
|
score = int(input('请输入你的分数:')) #接收输入,因为input接收的是一个字符串,所以需要用int函数强制类型转换成整数类型
if score==100: #如果成绩等于100分的话
print('小天才,你是满分')
elif score >=90 and score < 100: #如果成绩大于等于90分小于100分的话
print('兄弟,你的分数不低啊,不错')
elif score > 60 and score <90:#如果成绩大于60分小于90分的话
print('兄弟,这次考试马马虎虎啊')
else: #如果分数小于60分的话
print('兄弟,你在搞什么,该努力了')
|
python循环
循环是干嘛的呢,说白了就是为你重复的去做事情,比如说你想建1000个文件夹,一个个建累死你, 这样就可以写段代码,使用循环给你创建1000个就省事了,python中有两种循环,while和for,两种循环的区别是,while循环之前,先判断一次,如果满足条件的话,再循环,for循环的时候必须有一个可迭代的对象,才能循环,比如说得有一个数组,值得一提的是,别的语言中,for循环的时候需要先定义一个计数器变量,然后从0开始加,直到这个计数器达到你预设的一个值,然后停止循环,取数据的时候也是通过数组的下标从0开始取,这样就很麻烦,python中for循环很简单,循环的是一个可迭代对象中的元素,你这个对象中有多少个元素,就循环多少次,比如说一个数组list,list = ['a','b','c'],在别的语言中要想获取到list中所有的值,必须得使用循环取下标这种方式去取数据,就得这样写list[x],list[x],list[x]这样,在Python里面就不需要直接循环就取的是这个list里面的值,循环里面还有两个比较重要的关键字,continue和break,continue的意思是,跳出本次循环,继续进行下一次循环,break的意思是停止循环,也就是说在continue和break下面的代码都是不执行的,格式如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#while 循环
count = 0
while count<10: #如果count小于10的话,就执行下面的代码,如果不小于3就走else
print(count)
if count==5:
break#如果count等于5的话,就结束循环
count+=1 #这个意思是每次循环完,count的值就加一,如果不加的话,条件就一直为真了,就死循环了,一直不停的循环
else:#这个else是可以不写的,意思就是说,如果条件不满足了去干嘛
print('条件没满足')
#for 循环
names = ['marry','lily','lilei']
for name in names:
if name == 'lily':
contiune #如果名字等于lily的话,就不执行continue下面的代码了,再循环下一次
print(name)
else:#for也有个else,不过这个一般没人写它,意思是如果正常循环完了去做什么
print('over')
|
python格式化输出
什么是格式化输出呢,就是说把你的输出都格式化成一个样子的,比如说登录的欢迎信息,都是welcome to login,Marry. 每个用户登录都是这样欢迎,但是每个用户的用户名都是一样的,你不能一个用户就写一行代码吧,这就需要用到格式化输出了,有三种方式,第一种是用“+”连接,直接把输出的字符串和变量连接起来就可以了;第二种是用占位符,占位符有常用的有三种,%s、%d和%f,%s是后面的值是一个字符串,%d是后面的值必须是一个整数,%f后面是小数;第三种是使用{}和fromat方法,这三种呢,官方推荐是使用format方法,不推荐使用第一种,第一种用加号的,会在内存里面开辟多个内存空间,而后面两种是只开辟一块内存空间,使用方式如下:
1
2
3
4
5
6
7
8
|
name = input('请输入你的名字:')
print('你的名字是'+name) #使用加号连接
print('你的名字是%s'%name)#使用占位符
print('你的名字是{your_name}'.format(your_name=name)) #使用format格式化输出,{}里面的名字可以随便写但是
要和后面的format中的名字保持一致,然后再把你前面定义的变量写到等号后面就可以了。
age = 18
print('我的名字是%s,年龄是%d岁.'%(name,age))#这种是里面有多个格式化内容的,前面那个是字符串,后面这
个是整数,多个变量的后面跟值的时候必须要加上括号
|