1 Jmeter分布式压测
1、 其他的压力机启动jmeter-server.bat
2、在控制机上,找到jmeter的bin目录下打开jmeter.properties文件,找到remote_hosts=localhost:1099,192.168.3.114:1099,192.168.3.115:1099该信息(该信息默认是注释掉的,需要将前面的#号去掉),添加远程压力机,如果有多个压力机,在后面用逗号隔开;
3、添加完上述信息之后,重启jmeter,选择<运行->远程启动>选择对应的服务器。
2 Jmeter在命令行上运行
1、 首先在windows下创建好脚本,并将脚本传到jmeter的bin目录下
2、 在地址栏上直接输入cmd,直接进到jmeter目录;
3、 进入到cmd目录下,使用命令jmeter -n -t aaa.jmx –l xxx.jtl
-n:没有图形化界面执行;
-t:指定jmeter脚本路径,如果脚本直接放在jmeter的bin目录下,则直接写jmeter脚本名称即可,如果不是在该目录下,写入脚本的绝对路径;
-l:输出测试结果保持到某个文件里,文件必须以.jtl文件名结尾;
linux上命令行运行jmeter脚本也使用此方法;
4、查看结果,打开jmeter图形化界面,添加聚合报告,导入刚刚生成的jtl文件。
如果要查看结果树,则直接添加一个查看结果树,导入刚刚生成的jtl文件。
3 抓包
1、可以使用该工具抓包定位问题,确认客户端请求有问题还是服务端返回有问题;
抓包过滤
2、篡改请求,可以绕过前端输入其他异常数据发送给服务器,用于测试异常安全性测试;
抓包拦截(选中需要拦截的URL,右击选择Breakpoints)
再次访问该页面会进行拦截,可以在上面篡改数据再执行。
手机端操作测试,手机上设置代理即可使用charles进行抓包。
移动端测试模拟手机测试设置(弱网测试)
4 Webservice-soapui
天气预报接口地址
1、 sopaui新建一个soap项目
2、 在wsdl地址栏上填上wsdl接口的地址;
3、 左边是请求的数据,右边是返回的数据;
5 Python
Python可以在网络爬虫、数据分析、web开发、人工智能、自动化运维、自动化测试、嵌入式、黑客等方面使用。
脚本语言:功能单一,如shell脚本语言,只能在linux系统上运行;
语言分为编译型语言和解释型语言
编译型语言:运行代码之前,要先编译,再运行;如C、C++、C#;编译时间较长;
解释型语言:运行的时候才去编译,运行一次编译一次,如python、ruby、shell、java;解释型语言运行效率没有编译型语言快;
5.1 变量
name = 'zhangsan'
age = 28
等号前面是变量名,等号后面是变量值,变量值如果是字符串的必须使用单引用,否则报错;
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']
变量就是用来存储东西的。
变量值单引号和双引号的使用区别:
当字符串里有单引号时,整个字符串就需要使用双引号;
Words1 = “I’m zhangsan”
当字符串中有双引号时,整个字符串就需要使用单引号;
Words2 = ‘沈阳长的”很帅”’
当字符串中即有单引号,又有双引号,整个字符串就需要用三个单引号或三个双引号;
Words3 ='''I'm shenyang,i love "python"'''
注释:
Pycharm中对整行进行注释快捷键是ctrl+/,如果取消注释再按一次即可;
5.2 条件判断
Python中条件判断只有if-----else条件判断
且if和else冒号后面必须有缩进。
If和elif后面必须要跟条件判断,else后面可以不跟条件判断,且elif可以有多个;
查看数据类型可以使用type(变量名)就知道具体的数据类型。
快速复制一行代码使用ctrl+D快捷方式。
有多个条件同时满足需要使用and连接,不能使用&&号。
有多个条件只要满足其中一个就表示成功,则使用or进行连接。
5.3 循环
5.3.1 While循环
While循环必须有一个计数器,记录循环的次数,循环就是在重复执行循环体里面的代码。
如果循环中碰到break则立即结束循环,所以break下面的代码是永远执行不到的(即与break代码在一级别的,下面的例子中count= count+1与break不是一个级别,所以能执行到);
While----else中的else是循环正常结束之后,才会执行else:
debug调试
如果代码中有问题,可以在有疑惑的地方添加断点,再右击选择debug循环运行。
5.3.2 For循环
For循环不需要定义计数器,但是不能定义死循环;
break立即结束循环,不管你循环有没有完成;
continue结束本次循环,继续进行下一次循环;
For循环中的break示例:
5.4 字符串格式化输出
字符串直接拼接
用“+”连接,直接把输出的字符串和变量连接起来就可以了;
占位符
占位符有常用的有三种,%s、%d和%f,%s是后面的值是一个字符串,%d是后面的值必须是一个整数,%f后面是小数;
5.5 列表list(也称数组)
列表里有多个元素,列表中的下标都是从0开始的。
5.6 列表的增删改查
5.6.1 列表中增加元素的方法
append()在列表末尾增加一个元素
insert()在列表指定位置增加一个元素
5.6.2 列表中删除元素的方法
pop()删除列表指定位置的一个元素
remove()删除列表中指定的一个元素
del也可以删除指定位置的一个元素
5.6.3 列表中修改元素的方法
stus[1] = '张三'
5.6.4 列表中查询元素的方法
print(stus[1])
print(stus[-1]) #下标中如果取-1的时候,就取最后一个元素
5.6.5 清理列表中的元素方法
stus.clear()
统计指定元素在列表里面出现的次数
print(stus.count('张三'))
返回指定元素第一次出现的下标,如果这个元素不在列表中,则会报错
print(stus.indes('张三'))
列表元素反正
stus.reverse()
把后面list里面的值,加入到第一个list中去
stus.extend(stus2) #方法一
print(stus+stus2) #方法二
合并两个list
stus3 = stus + stus2
print(stus3)
排序,默认是升序,如果要进行降序则nums.sort(reverse=True),就可以了
nums = [1,3,5,3,5,2,9,7]
nums.sort()
print(nums)
数组示例: