- 博客(50)
- 收藏
- 关注
转载 JMeter压测分布式部署
JMeter压测分布式部署监控JMeter压力机的性能netstat -an | find "TCP" /C处理过程:一:调度机master启动以后,会拷贝本地的jmx文件分发到远程的slave机器上;二:slave机器拿到脚本以后启动命令行模式去执行脚本,对于每台slave机器拿到的脚本都是一样的,所以如果jmx脚本为50个线程跑3分钟,那么实际并发就是50*3=150个线程并发跑3分钟;三:执行时,slave会把执行获得的数据结果传给master机器,master机器会收
2021-12-02 23:02:08 491
原创 关于idea更新代码及clone代码
一、Pull代码1、这个操作相对简单,如果已经有旧版本代码只需要点击如果按钮即可2、默认选择即可3、在下方无进度显示后表示更新完成二、clone其他项目代码1、右键点击项目,选择git2、输入git上的项目地址,点击clone...
2021-11-22 14:21:33 4755
原创 python之requests鉴权
import requestsurl = "www.baidu.com"data = {"key":"value"}headers = {''}resp = requests.post(url,json=data,headers=headers)# 响应状态码print(resp.status_code)# 响应头print(resp.headers)# 响应体body = resp.textprint(body)print(type(body))# 响应体转换成Pyt...
2021-07-22 17:45:54 1711 3
原创 python之读取.ini文件操作
.ini必须满足以下格式(可多个)[section]option=valueoption=value[section]option=valueoption=value.ini读取:ConfigParse类1、引入 from configparse import Configparse2、conf = Configparse()3、读取.ini文件 conf.read(fs,encoding="utf-8")4、通过get方法,获取section下的option的值。.
2021-07-16 15:50:24 636
原创 2021-07-05 python之日志收集器
"""0、日志收集器:1、日志级别(LEVEL):DEBUG/INFO/WARNING/ERROR/CRITICAL(FATAL)2、输出渠道(Handle):控制台(SteamHandle)、文件(FileHandle)3、日志内容(Formatter):时间-哪个文件-哪行代码-输出内容logging模块,默认root日志收集器,默认的输出级别为:WARNING自定义收集器第一步:创建一个日志收集器:logging.getLogger("收集器的名字")第二步:给收集器设置日志级别:.
2021-07-06 00:02:26 469
原创 2021-07-04 python之excel的zip函数使用及封装
"""li1 = ['user', 'passwd', 'check']li2 = ["python27","lemonban66666",{"code": 0, "msg": "登录成功"}]res = zip(li1,li2)print(dict(res))"""import os# abspath查看路径/join拼接file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),"login_cases...
2021-07-04 12:49:39 434
原创 2021-07-03 python之读写excel文件
"""1、准备测试数据2、load_workbook模块,去打开测试数据文件,生成WorkBook对象(wb)3、根据表单名称选择表单(sh):wb['表单名称']4、在表单中,获取单元格的数据: 4.1、单元格对象:sh.cell(row,colum) # 在openpyxl库中下标是从1开始的 4.2、.value获取单元格的值。 4.3、sh.cell(row,colum).value = 新的值5、得到当前表单中的总行数和总列数 sh.max_row .
2021-07-04 00:05:43 326
原创 2021-06-22 python异常处理
try: fs = open(r"D\Pycharm\python练习.txt", "r", encoding="utf-8")except: print('there is an error!!!') # 自己定义输出的错误信息 raise # 抛出异常信息else: fs.write('you are right!!!')finally: print('这里是一定会执行的代码!!') try: fs.close() # 无.
2021-06-22 22:40:42 66
原创 2021-06-22 python路径处理
1、OS模块 path路径处理__file__:代表当前文件名获取当前文件的绝对路径:os.path.abspath获取当前文件的所在目录:os.path.dirname路径拼接:os.path.joinimport os
2021-06-22 22:02:52 120
原创 2021-05-25 Jenkins接口自动化持续集成
一、复制非GUI模式下的命令newman run "e:\\yongli.json" -e "e:\\huanjing.json" -g "e:\\quanju.json" -r cli,html,json,junit --reporter-html-export "e:\\report.html"二、打开Jenkins新建项目并配置1、新建项目2、选择Freestyle project,点击确定。3、触发器选择Build periodically,*****分别代表分钟、.
2021-05-26 00:02:45 155
原创 2021-05-23 Postman八大断言(二)
postman总共八大断言,其中1/2/3/4/6较为常用//1、断言返回码为200(用于状态断言)pm.test("Status code is 200", function () { pm.response.to.have.status(200);});//2、断言返回的结果中包含一种指定的字符串(用于业务断言)pm.test("Body matches string", function () { pm.expect(pm.response.text()).to.includ...
2021-05-23 12:04:13 2113
原创 2021-05-23 Postman断言之提取器(一)
一、JOSN提取器://提取access_token值var jsValue = JSON.parse(responsebody)console.log(jsValue.access_token)//把提取到的值设置成全局变量pm.globals.set("access_token", jsValue.access_token);二、正则表达式提取//使用正则表达式提取(结果为数组的话只需要取一个值)var flag_id = responseBody.match(new Rege
2021-05-23 11:55:07 919
转载 2021-05-11 性能测试常见瓶颈分析及调优方法
一、注意事项1、断言在压测时,为了判断发送的请求是否成功,一般会通过对请求添加断言来实现。使用断言时,建议遵循如下规范:①、断言内容尽量以status/code、msg/message来判断(当然前提是接口设计遵循Restful规范)Jmeter示例:阿里云PTS:如果使用的是PTS压测,则断言设置中,以code/status、msg/message等于对应的值为准;②、尽可能不要将所有的Response Body内容作为断言判断的内容,这样很可能会导致大量的“断言”失败;
2021-05-11 17:09:07 796
转载 2021-05-10 测试环境搭建
一:搭建测试环境的优点:自己实习了也才2个月,在服务器上搭建测试环境,自我的理解是在一个服务器上部署好环境需要的nginx,tomcat,es,mysql,navicat,mq(消息传输的)这些组件,然后通过每次开发打包,自己更新war包,这样来更新环境,进入环境测试。也算是比较节省资源和方便吧。二:搭建测试环境的一般步骤:前人栽树后人乘凉,我属于后者。公司的大佬把安装环境需要的基本组件都装好放在一个镜像里面,我需要的就是拿一台服务器,从网关那儿获取一个ip,自行安装虚拟机,docker,nginx
2021-05-10 15:30:52 101
原创 2021-04-13 Python之深拷贝与浅拷贝
一、浅拷贝:拷贝的是父对象,不会拷贝到内部的子对象。(单从一个浅字就可以看出他拷贝的东西不深,可以理解为只拷贝一层)import copya = [1, 2, [3, 4], 5]b = copy.copy(a)print(b)# 结果为 [1,2,[3,4],5]# 接下来我们更改a的数据a.append(6)print(a)print(b)# 结果为 [1,2,[3,4],5,6]和[1,2,[3,4],5]# 可以发现浅层的数据更改(第一层)并没有让b发生变化# 接下来进行.
2021-04-13 16:28:51 105
原创 2021-04-13 Python之多线程
直接上代码:import threadingimport timefrom threading import current_threaddef thread(arg1,arg2): print(current_thread().getName(),'start') print('%s %s' %(arg1,arg2)) time.sleep(1) print(current_thread().getName(),'stop')for i in range(1.
2021-04-13 12:00:06 149
原创 2021-04-12 Fiddler之断点、弱网以及Https的设置
一、断点(此时可以修改发送的参数或者返回后的信息,去验证页面的展示情况(模拟极端测试的场景))响应前局部断点使用命令(request请求时发送给服务器前的断点命令):1、开始断点:bpu加“空格”,再加“关键字”。比如:bpu login2、结束断点:bpu响应后局部断点使用命令(response服务器返回客户端前的断点命令):bpafter二、弱网1、可直接选择下图的位置可以模拟2、可以选择Rules下的Customize Rules...进行具体的加载时间模拟
2021-04-12 23:08:40 509
原创 2021-03-31 Webdriver之Xpath元素定位深挖
Webdriver之Xpath元素定位(一般情况两步搞定,特殊情况,可能有有两个container,就需要3步)一般找一个对象分三步1. 定位目标操作对象的container(就是装这目标对象的容器)。也就是截图里的第三行,role=menu那个节点,可以理解位目标对象的container2. 然后通过xpath的轴,也就是目标对象与container的相对路径,来定位找目标对象(container节点找到后,其实可以直接通过文字定位。一般一个列表里不会有两个文字完全一样的选项)一般的://
2021-03-31 14:21:11 620
转载 2021-03-17 SQL常见面试题
SQL常见面试题1.用一条SQL语句 查询出每门课都大于80分的学生姓名name kecheng fenshu张三语文 81张三数学 75李四语文 76李四数学 90王五语文 81王五数学 100王五英语 90A: select distinct name from table where name not in (sel...
2021-03-17 21:01:52 2969
原创 2021-03-15 Python之current_thread与统计的用法
多线程代码:import threadingimport timefrom threading import current_threaddef thread(arg1,arg2): print(current_thread().getName(),'start') print('%s %s' %(arg1,arg2)) time.sleep(1) print(current_thread().getName(),'stop')for i in range(
2021-03-15 17:00:20 1012
原创 2021-03-15 Python之Queue的使用
序列代码:from threading import Thread,current_threadimport timeimport randomfrom queue import Queuequeue = Queue(5)class ProductThread(Thread): def run(self): name = current_thread().getName() nums = range(100) global queu
2021-03-15 16:54:20 112
原创 2021-03-15 python之闭包、迭代与装饰器的用法
# 闭包定义:内部函数引用外部变量# 闭包实现计数器def counter(FIRST=0): # FIRST=0 表示传入值从FIRST开始,不传值就从0开始 cnt = [FIRST] def counter1(): cnt[0] += 1 return cnt[0] return counter1 # 返回时不能带括号,比如return counter1()num5 = counter(5)num10 = counter(10).
2021-03-15 16:13:34 101
转载 2021-03-11 正则表达式re.compile()的使用
re 模块提供了不少有用的函数,用以匹配字符串,比如:compile 函数match 函数search 函数findall 函数finditer 函数split 函数sub 函数subn 函数re 模块的一般使用步骤如下:使用 compile 函数将正则表达式的字符串形式编译为一个 Pattern 对象通过 Pattern 对象提供的一系列方法对文本进行匹配查找,获得匹配结果(一个 Match 对象)最后使用 Match 对象提供的属性和方法获得信息,根据需要进行其他的操作co
2021-03-11 15:06:43 550 1
原创 2021-02-17 selenium安装与Google驱动
1、windows命令执行:pip3.7 install selenium2、安装驱动:http://chromedriver.storage.googleapis.com/index.html
2021-03-10 15:10:25 157
转载 2021-03-08 UnitTest常用断言
unittest中断言主要有三种类型: 1.基本的布尔断言,即:要么正确,要么错误的验证 2.比较断言,如比较两个变量的值(跟上面的布尔断言区别不大,主要是通过比较两个变量的值得出布尔值) 3.复杂断言(一般用的比较少,像断言两个列表、元组等)1.基本的布尔断言这个就是断言参数的对错,当然也有部分比较断言。有一个共同点:都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回。主要有以下:其中主要常用的有第一种和第九种举例:# 获取登录后的提示信息.
2021-03-10 15:08:44 605
转载 2021-03-09 Selenium之find_element_by_css_selector()的使用方法
出处:https://blog.csdn.net/qq_35861801/article/details/108125082===========================================================================以百度搜索首页为例,我们要定位到搜索输入框的话,应该如何写呢?单属性查找# 1.用 标签名 定位查找driver.find_element_by_css_selector("input")# 2.用 id 属性
2021-03-09 17:57:33 845
原创 2021-03-09 关于导入HTMLTestRunner相关问题
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.htmlHTMLTestRunner.py 本是一个.py 文件,将它放到Python 安装目录下即可调用。Windows :将下载的文件放入...\Python3.8\Lib 目录下输入下方命令可查询Lib路径:import sysprint sys.path===========================================================.
2021-03-09 17:29:40 735
转载 2021-03-05 UnitTest框架二
测试套件中的addTestaddTest:用例按顺序执行问题:我们知道测试用例的执行顺序是根据测试用例名称顺序执行的,在不改变用例名称的情况下,我们怎么来控制用例执行的顺序呢? 一个测试文件,我们直接执行该文件即可,但如果有多个测试文件,怎么进行组织,总不能一个个文件执行吧?要解决上面两个问题,我们就要用到测试套件(TestSuite)了代码如下:import unittestimport warningsfrom selenium import webdriverfrom
2021-03-05 15:47:44 106
原创 2021-03-04 UnitTest框架一
UnitTest框架作用:1、能够组织多个用例执行2、提供丰富的断言方法3、提供丰富的日志及测试结果UnitTest核心要素:1、TestCase(测试用例)方法:新建类并继承TestCaseimport unittest# 在unittest中类不需要实例化class Test01(unittest.TestCase): # 方法必须是test开头的命名 def test001(self): print('test0
2021-03-05 15:45:14 203 1
原创 2021-03-04 selenium验证码获取方法
获取验证码方法:1、去掉验证码(测试环境)2、设置万能验证码(生成环境)3、记录cookiecookie相关方法:1、driver.get_cookie(name) # 获取指定cookie,name为键名2、driver.get_cookies() # 获取所有cookie3、driver.add_cookie(str) # 添加cookie,str为python中的字典格式# 举例driver.add_cookie({'name':'xxx','va
2021-03-04 11:34:59 556 1
原创 2021-03-03 selenium的frame表单、窗口切换及窗口截图
简言之,当页面存在多个窗口并且源代码中定位不到该窗口时需要用到frame# 方法driver.switch_to.frame('frame标签属性值')# 当默认页面存在多个窗口,获取完一个窗口后,需要恢复默认页面,因为当前页面没有要找的frame标签driver.switch_to.default_content()...
2021-03-03 12:58:36 270
原创 2021-03-02 selenium下拉框、警告框及滚动条的使用
###Select类只能用来定位select标签###from selenium.webdriver.support.select import Selectwebelement = driver.find_element_by_css_selector('select')# 实例化类select = Select(webelement)# 通过index来定位,从0开始select.select_by_index(1)# 通过value来定位select.select_by_val.
2021-03-02 17:22:52 144
转载 2021-02-26 CI-持续集成:③--jenkins 部署
输入网址进入jenkins在服务器上 cat上述文件,即可获取密码:cat /var/lib/jenkins/secrets/initialAdminPassword注:可能你会出现如下问题(出现该问题是 你自己添加了url 后缀加 /jenkins才会出现)此为jenkins的bug,将域名后面的/jenkins 去掉即可进入配置页面。去掉jenkins 后,一定要重新启动jar包,不要添加 url 后面跟jenkins的方式。如果不重新启动,你将无法正常看到界...
2021-02-26 15:37:09 151
转载 2021-02-26 CI-持续集成:②--jenkins.war 安装
进入jenkins的官网:https://jenkins.io/download/选择你需要的环境,进入即可,这里选择CentOS支持版本,如下界面按照其提示,执行依赖包和密钥的操作:安装依赖包sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo导入密钥sudo rpm --import https://pkg.jenkins.io/redhat-s.
2021-02-26 15:27:38 158
转载 2021-02-26 CI-持续集成:①--java升级
升级步骤:1、下载tar.gz格式的软件包至本地服务器上;下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html2、解压下载后的文件到/usr/java目录下:tar xf jdk-8u20-linux-x64.tar.gz -C /usr/java/3、修改/etc/profile文件为如下内容: e...
2021-02-26 15:19:33 116
原创 2021-02-25 webdriver鼠标及键盘操作方法
说明:webdriver中是将操作鼠标的方法封装在ActionChains中的1.context_click() #右击2.double_click() #双击3.drag_and_drop() #拖动4.move_to_element() #悬停5.perform() #执行以上方法一、context_click1.导包:from selenium.webdriver.common.action_chains import Ac
2021-02-25 18:12:21 461
原创 2021-02-25 webdriver其他常用方法
# 获取当前页titletitle = driver.titleprint('当前页title为:',title)# 获取当前页urlurl = driver.current_urlprint('当前页url为:',url)print('='*50)# 判断span元素是否显示is_displayed = driver.find_element_by_css_selector('span').is_displayed()print('span是否显示:',is_displayed)...
2021-02-25 16:38:22 101
原创 2021-02-25 selenium自动化登录网站相关操作
# 快速导包命令:ctrl+alt+空格from selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfrom time import sleep# 获取驱动driver = webdriver.Chrome(r'D:\chromedriver\chromedriver.exe')driver.implicitly_wait(10)# 获取登录页driver.get('https:/.
2021-02-25 11:01:54 385 2
转载 2021-02-23 selenium中switch_to.window()作用
selenium中switch_to.window()作用在浏览器操作中,通常会需要打开多个浏览器界面,如果不使用switch_to.window,程序会每次还去程序打开的最初始的那个界面寻找元素,这样就导致新界面中的元素找不到。这个时候,就需要通过switch_to.window(windowhandles)方法来对浏览器页面进行切换,其中参数windowhandles为网页的窗口句柄。switch_to.window()方法的使用:1 handles = driver.wind..
2021-02-23 14:18:26 3135
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人