- 博客(40)
- 收藏
- 关注
原创 jenkins pipeline
pipeline 基于groovy语言实现的一种DSL(领域特定语言),用于描述整条流水线如何进行。流水线的内容包括执行编译,打包,测试,输出测试报告等步骤。基本工程pipeline:pipeline{agent anystages{stage(‘build’){steps{echo “hello world”}}}}pipeline :代表整条流水线,包含整条流水线的逻辑stage 部分:阶段,代表流水线的阶段。每个阶段都必须有名称。build就是名称stages :流水线中多
2022-07-28 14:18:03
335
原创 读书笔记:全程软件测试:测试基础知识
什么是软件测试。有正确的理解,就有正确的操作,相反,有错误的理解,就有错误的操作。所以从两个方面定义软件测试:1.软件测试是一系列活动,这些活动是为了评估一个程序或软件系统的特性或能力,并确定其是否达到预期结果。也就是验证软件功能执行的正确性。缺点:不利于发现软件的错误。潜意识里设计测试数据的时候不会刻意选择一些尽量使程序出错的测试数据,而选择一些常用的数据。2.测试是为了发现错误而执行一个程序或系统过程。缺点:容易陷入局部深度测试,缺乏广度。综合以上两种定义:要做好测试要将正向思维和逆向思维有机
2022-05-29 22:49:32
365
原创 读书笔记:准备测试数据
准备测试数据的基本方法*基于GUI操作生成测试数据*通过API调用生成测试数据*通过数据库操作生成测数据*综合运用API和数据库生成测试数据基于GUI操作生成测试数据简单的说是采用E2E的方式来执行业务场景,然后生成测试数据的方法。缺点:*创建测试数据的效率非常低*基于GUI的测试数据创建方法不适合封装成测试数据工具*测试数据很难创建成功*会引入不必要的测试依赖通过API调用生成测试数据目前主流的测试数据准备方法缺点:*并不是所有的测试数据创建方式都有对应的API*创建一条
2022-05-10 00:26:01
152
原创 大型互联网产品的全链路压测
全链路压测是基于真实的生产环境来模拟海量的并发用户请求和数据,对整个业务链路进行压力测试,试图找到所有潜在性能瓶颈并持续优化。全链路压测技术难点:*海量并发请求的发起*全链路压测流量和数据的隔离*实际业务负载的模拟*真实交易和支付的撤销以及数据清理海量并发请求的发起海量会超过1000万次以上请求的压力量级,loadrunner难以满足,因为loadrunner按照并发用户数收费,而且loadrunner本身很难支持千万级乃至亿级的海量并发请求,所以采用Jmeter##Jmeter 要解决问
2022-05-08 23:13:28
879
原创 读书笔记:性能测试工具
1.前端性能测试工具 webPagetest性能评估结果平分指标1.first Byte Time用户发起页面请求到接收到服务器返回的第一个字节所花费的时间,反映了后端服务器处理请求,构建页面,并通过网络返回信息所花费的时间2.KEEP Alive enabled尽可能重用已经建立好的链接,避免重新建立新的链接3.Compress Transfer将页面上文本类进行压缩,减少网络传输的数据量4.compress IMage图像文件进行压缩,使用渐进式JPEG。渐进式JPEG包含多次扫描,
2022-05-06 23:19:23
148
原创 读书笔记-后端性能测试工具
原理:性能测试工具基于客户端与服务器端的通信协议,构建模拟业务操作的测试脚本,web:HTTP/https协议,或web services协议虚拟用户测试脚本:基于协议模拟用户行为的测试脚本。l1.oadrunner通过录制后再修改的方式生成虚拟用户测试脚本JMETER 通过添加各种组件并对组件进行配置的方式生成虚拟用户的测试脚本。2.后端性能测试工具以多线程或多进程的方式并发执行虚拟用户测试脚本,来模拟大量并发用户的同时访问,从而对服务器施加测试负载。我们把实际发起测试负载的机器称为压力产生器3
2022-05-05 23:38:18
1387
原创 读书笔记:常见的7种性能测试
1.后端性能测试:模拟大量并发用户请求,然后获取系统的各项指标,并验证各项指标是否符合预期的性能需求测试方法,包括,并发用户数,响应时间和系统吞吐量,还有各类资源的使用率:CPU占有率,内存使用率,磁盘IO,网络IO。2.前端性能测试:关注页面渲染时间,资源加载顺序,请求数量,前端缓存使用情况,资源压缩.雅虎原则:*减少HTTP 请求测试*减少DNS查询次数*避免页面跳转*使用内容分发网络*通过Gzip 压缩传输文件3.代码级性能测试*将只会执行一次的单元测试用例连续执行N次*统计执行
2022-05-04 23:52:29
233
原创 读书笔记:性能测试的3个常用指标
1.并发用户数:*业务层面:实际使用系统的用户总数,结合用户行为模型得到系统实际承载的压力.*服务器层面的并发用户数:同时向服务器发送请求的数量。用两种方式获取用户行为模式:*已经上线的系统,通过系统日志分析法获取用户行为,以及峰值并发量等信息*未上线的新系统,参考行业中类似系统的统计信息来建立用户行为模并分析。2.响应时间响应时间反映了完成某个操作所需要的时间,标准定义,应用系统从请求发出开始到客户端接收到最后一个字节的数据所消耗的时间。*前端展示时间:渲染页面所消耗的时间*系统响应时间
2022-05-04 23:32:15
414
原创 读书笔记:测试工程师全栈技术进阶与实践
性能测试工程师需要技能:1.性能需求的总结与抽象能力2.根据性能测试目标,精准的性能测试场景设计和计算能力3.性能测试场景的和性能测试脚本的开发和执行能力4.性能测试报告的分析解读能力5.性能瓶颈的快速排查和实现能力6.性能测试数据的设计和实现能力7.互联网,全链路压测的设计和执行能力8。深入理解性能测试工具的内部结构实现原理,可以进行二次开发...
2022-05-04 23:01:48
475
原创 读书笔记-哈佛大学极简经济学2
微观经济学现代经济学的一个分支,以单个经济单位来做为研究对象,主要范围:消费者选择 厂商供给和收入分配1.分工:社会生产力提高的密码,农业和畜牧业的分工;手工和农业的分工;商人的出现2.私有化:生产成果的归属不明确,人们没有增加生产的动力,产权分为:原始产权,法人产权和股权和债权3.商品:用来交换的劳动产品4.市场:社会分工和商品经济发展的必然产物5.解决人类经济问题的发展:1.传统模...
2019-09-13 15:50:44
388
原创 读书笔记-哈佛大学极简经济学1.
经济学基础篇:1.让别人无私奉献的人,99%是骗子1%是政客经济人和道德人,理性经济人为自己私利打算。道德人:同情心 正义感 和行为的利他主义倾向2,精于算计的理性人,为何也会被人看成傻瓜:有限理性:任何人都不可能是完全的理性人举例:掩耳盗铃,演出门票丢失。3.如果有天堂,天堂里一定没有经济学家,经济学研究在资源稀缺的情况下,如何有效分配资源的稀缺性:人类面临的永恒问题,也...
2019-09-10 22:28:48
807
原创 Ajax 数据爬取
1.Js Ajax:Ajax的原理简单来说通过浏览器的javascript对象XMLHttpRequest(Ajax引擎)对象向服务器发送异步请求并接收服务器的响应数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。即用户的请求间接通过Ajax引擎发出而不是通过浏览器直接发出,同时Ajax引擎也接收服务器返回响应的数据,所以不会导致浏览器上的页面...
2019-09-01 22:22:49
284
原创 数据存储
1.TXT 保存open(name[, mode[, buffering]])import requestsfrom pyquery import PyQuery as pqurl=‘https://www.zhihu.com/explore’headers = {‘User-Agent’: ‘Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build...
2019-08-31 21:52:51
194
转载 正则表达式
正则表达式:match()从字符串的起始位置匹配正则表达式,如果匹配,则返回匹配成功的结果,如果不匹配,则返回None第一个参数传入正则表达式,第二个参数传入要匹配的字符串import re匹配目标:调用group 方法传入分组的索引result=re.match(regex,context)result.group()通用匹配:.*.点 可以匹配任意字符(除了换行符)*代表...
2019-06-16 22:36:06
167
转载 Requests
1.安装requests库get 请求:import requestsr =requests.get(‘http://baidu.com’)print(type®)<class ‘requests.models.Response’>添加有参数的,且返回结果为JSon格式,可调用Json方法转化为字典。data = {… ‘name’:‘china’...
2019-06-16 15:11:03
113
翻译 urllib function
1.处理异常urllib的error模块定义了request 模块产生的异常,如果出现问题,request 模块便会抛出error模块中定义的异常1)URLErrorfrom urllib import request,errortry:… response = request.urlopen(‘https://cuiqingcai.com/index.com’)… e...
2019-06-10 23:26:33
153
翻译 爬虫第三天
1.使用Urllibpython 内置库,不需要额外安装,包括四个模块:1.request,用来模拟发送请求2.error,异常处理模块3.parse:解析URL4.rootparser:用于识别网站上的robots.txt,用的不多1.urlopenurlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cad...
2019-06-09 18:33:14
155
翻译 爬虫第二天
URI:统一资源标识符URL:同一资源定位符URL:包括访问协议(HTTP),访问路径和资源名称,URL是URI的子集。HTTP和HTTPS:HTTP:超文本传输协议,用于从网络传输超文本协议到本地浏览器的传送协议。HTTPS:HTTP的安全版,即在HTTP下加入SSL层。加入信任证书HTTP的请求过程:浏览器向服务器发送一个Request,服务器接收到请求并进行处理和解析,然后返回...
2019-06-08 00:09:48
203
翻译 python 爬虫第一天
1.爬虫框架安装如果直接用Requests Selenium 等库写爬虫,爬取量不是太大,速度要求不高是可以的我们可以用爬虫框架:pyspider 和scrapypyspider 是国人binux编写的强大网络爬虫框架,带有强大的webUI 脚本编辑器 任务监听器,项目管理器及结果处理器,结果支持多种数据库后端,多种消息队列,。pyspider 支持JS渲染,依赖于PhantonJS,需安...
2019-06-05 22:35:52
139
翻译 LoadRunner
性能测试流程性能测试需求分析->性能测试计划->性能测试用例->测试脚本编写->测试场景设计->测试场景运行-〉场景运行监督-〉运行结果分析-〉系统性能调优-〉性能测试总结...
2019-05-31 18:04:08
942
翻译 Python 类
class Dog ( ):#构造函数def init(self,name,age):self.name =nameself.age=agedef sit(self):print(self.name.title()+“is now sitting.”)def roll_over(self):print(self.name.title()+“rolled over!”)my_dog...
2019-05-20 23:51:47
93
转载 python API 调用
访问地址:https://api.github.com/search/repositories?q=language:python&dort=stars1.安装requests1)检查pip版本:pip --versionWindows:pip --versionpip 9.0.1 from E:\ProgramData\Anaconda3\lib\site-packages (...
2019-05-19 23:49:03
921
翻译 性能测试结果分析
可通过以下步骤分析1.分析测试环境是否稳定,CPU ,网络等是否正常2.检查Jmeter脚本参数是否设置合理,需要做到逐步加压,不是瞬间达到目标压力使用非GUI模式3.检查测试结果是否暴露出系统瓶颈测试结果遵循原则:用户响应时间-》网络和服务器响应时间-》组件级性能BS架构应用程序 响应时间分两部分:Ts 服务器响应时间,Tn 网络响应时间2.借助监听器发现性能缺陷1)图形结果...
2019-05-13 23:04:01
3570
转载 JMeter函数及变量
Jmeter 函数特殊的变量,可被采样器或其他测试元件所引用语法:functionName(var1,var2,var3)不需要参数的{_functionName(var1,var2,var3)}不需要参数的functionName(var1,var2,var3)不需要参数的{_functionName}Jmeter 变量引用${variable} 如果引用了未定义的变量或函数 不会报错,...
2019-05-09 23:19:18
603
转载 LoadRunner相关概念
集合点集合点可以同步虚拟用户以便在同一时刻执行任务策略部分有3部分可选:1 当所有的虚拟用户中的X%到达集合点,才释放虚拟用户2 当所有正在运行的虚拟用户中的X%到达集合点时释放,才释放虚拟用户3 当X个虚拟用户到达集合点时释放,指定数量的虚拟用户timeoutbetween Vuser:设置等待下一个虚拟用户到达集合点的超时时间间隔,如果下个虚拟用户没有在超时间隔到达,control...
2019-05-09 17:46:52
161
转载 JMeter其他测试元件
1.测试计划相当于project用户可以在测试计划中完成对测试的整体设置在测试计划中可以定义静态变量及其值,以便这个测试期间使用如果选中Function Test Mode,Jmeter就会保存额外的采样信息到所有结果文件中,会增加性能负担,如果只是某个特定采样器需要更多数据,可为其添加要给子监听器通过User Defined Variable 配置元件定义变量2.线程组线程组定义了一...
2019-05-07 23:28:43
156
翻译 Jmeter测试元件3
后置处理器在采样器之后生效1.正则表达式提取器允许用户使用Perl 型正在表达式从一个服务器响应中提取值,并保存在指定变量名中
2019-05-06 22:01:08
371
转载 Jmeter 测试元件2
断言1.响应断言通过响应断言 可以添加模式字符串与响应的各个域进行比较模式字符串包括:contains ,matched–perls 5 的正在表达式Equals substring -纯文本 区分大小写contain–true 如果文本包含正则表达式模式2 duration Assertion测试每个在给定时间内接受到的响应,任何响应超过指定的毫秒数(用户指定),将被标记为失败的...
2019-04-27 21:37:38
160
翻译 Jmeter测试元件
1.添加并发用户线程组。线程数始终设置为1,如果单个服务器创建多个监控线程,会给服务器带来很大的压力循环次数设置为永远,以便产生足够多的采样,来动态监控服务器的工作状态2.添加HTTP授权管理器Add->Config element->HTTP.输入服务器的用户名和密码3.添加HTTP请求Add-》sampler->Http Request4.添加固定时长的定时器...
2019-04-21 23:39:51
296
转载 JMS
JMS:JAVA消息服务应用程序接口,用于两个应用程序之间或分布式系统中发送消息。进行异步通信消息是JMS中的类型对象,有两部分组成:包头和消息主体。Java的消息队列支持两种模式:点对点和发布者/订阅者模式JMS消息传递方式:标记为non_persistent 最多投递一次,标记为persistent 使用后暂存并转发。如果JMS服务器离线,持久性消息不回丢失等到这个服务器恢复后然后才传递...
2019-04-20 17:31:26
1269
翻译 FTP服务器
FTP工作原理:FTp是个客户端/服务器系统。用户可以通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将结果返回给客户机 ,具有上传和下载两个 功能/。FTP 三种用户:1.Real 用户:在FTP服务器上拥有账户2.guest用户:给不同部门或特定用户设置一个账户3.anonymous用户:公共资源FTP启动方式:ftp://[用户名:口令@]FTP服务器域名:[...
2019-04-20 16:25:59
322
翻译 性能测试 Jmeter
Jmeter可以作为web服务器和浏览器之间的代理网关,一边捕获浏览器的请求和web服务器的响应。通过多个线程组模拟真实用户对web服务器的访问压力1.测试计划 包括:一个或多个线程组,逻辑控制器,采样器。监听器 定时器 断言 和配置元件运行jmeter:windows:jmeter.batJmeter 的classpath:Jmeter_home/lib:公用包Jmeter_hom...
2019-04-14 21:48:41
170
转载 python解析网页 using selenium 错误记录
Pythoncall selenium解决 pip attributeerror ‘nonetype’ object has no attribute ‘bytes’ for Windows :python -m pip install -U pipfor Linux :pip install -U pip 1. pip install selenium2. 遇到问题 pip is 10.0...
2019-03-31 15:36:38
172
翻译 python 第五天hashable 类型
怎样在一个序列上面保持元素顺序的同时消除重复的值 如果序列上的值都是hashable 类型,那么可以很简单的利用集合或者生成器来解 决这个问题。如果一个对象在其生命周期内有一个固定不变的哈希值 (这需要hash()方法) 且可以与其他对象进行比较操作 (这需要eq()方法) ,那么这个对象就是可哈希对象 (hashable) 。可哈希对象必须有相同的哈希值才算作相等。比如: def dedu...
2019-03-31 15:32:17
459
翻译 python 第四天
怎样实现一个键对应多个值的字典 一个字典就是一个键对应一个单值的映射,如果你想要一个键映射多个值,那么你 就需要将这多个值放到另外的容器中。 like:d={ ‘a’:[1,2,3] ‘b’:[7,8] } defaultdict 是一个新like字典 from collections import defaultdict d = defaultdict(list) d[‘a’]...
2018-04-23 14:34:43
237
翻译 Python 第三天
heapq: import heapq heapq.heappush(Head1,item):head1 定义的head 。item 增加的值 通过heappush 排序 def heappush(sortlist): h=[] for i in sortlist: heapq.heappush(h,i) return h heapq.h...
2018-04-12 17:33:05
113
翻译 CRX文件安装
找到已下载文件,后缀以.CRX 结尾打开浏览器chrome,输入chrome://extensions,回车,选中Devenloper mode 3.将.CRX 文件拖到chrome页面执行
2018-04-10 11:20:31
491
原创 python 第二天
读取文件方式 try: file=open(‘c:\test.txt’,’r’) #print(file.read())– all content 依次性写入内存,只适应于文件比较小的情况下。 #文件比较大的情况下 #for line in file.readlines()): # print(line) #print(file.readline())–one row fina...
2018-04-02 14:25:31
119
翻译 python 第一天
1. 解压赋值可以用在任何可迭代对象上面这种解压赋值可以用在任何可迭代对象上面,而不仅仅是列表或者元组。包括字符串,文件对象,迭代器和生成器。如果只想解压一部分,丢弃其他的值,可以使用任意变量名去占位,到时候丢掉这些变量就行了data = [ 'ACME', 50, 91.1, (2012, 12, 21) ]>>> x,y,z,(year,mouth,day)=data &...
2018-03-23 15:52:53
155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人