关于测试开发:软件测试人工智能熟练使用web控件定位技巧提升测试工作效率

简介在做 Web 自动化时,最基本的就是操作页面上的元素,首先要能找到这些元素,而后能力操作这些元素。工具或代码无奈像测试人员一样用肉眼来分辨页面上的元素。那么要如何定位到这些元素,本章会介绍各种定位元素的办法。 web 控件定位id 定位Python 实现 driver.find_element(By.ID,'query')Java 实现 driver.findElement(By.id("query"));name 定位 Python 实现 driver.find_element(By.NAME,'query')Java 实现 driver.findElement(By.name("query")); 通常来说 name 属性与 id 属性在页面中惟一,举荐应用这两个属性进行定位。 XPath 定位 XPath 是一个定位语言,英文全称为:XML Path Language,用来对 XML 上的元素进行定位,但也实用于 HTML,上面来看一个例子。 要定位的元素是 Sogou 首页的搜寻输入框。 首先寻找 id 为 sf 的 form 元素,而后再寻找它的子元素 span,span 的 class 属性为 sec-input-box,最初找 span 的子元素 input,以下代码演示。 Python 实现 driver.find_element(By.XPATH,"//form[@id='sf']/span[@class='sec-input-box']/input")Java 实现 driver.findElement(By.xpath("//form[@id='sf']/span[@class='sec-input-box']/input"));上面的定位也能够找到这个 input,请留神,这里应用了双斜杠//,它能够找到子孙节点,而但斜杠/只能找到子节点,以下代码演示。 Python 实现 driver.find_element(By.XPATH,"//form[@id='sf']//input[@id='query']")Java 实现 driver.findElement(By.xpath("//form[@id='sf']//input[@id='query']"));XPath 表达式更多内容可参考上面表格。 表达式形容nodename选取此节点的所有子节点。/从根节点选取。//从匹配抉择的以后节点抉择文档中的节点,而不思考它们的地位。.选取以后节点。..选取以后节点的父节点。@选取属性。如何测验 XPath 定位是否正确?能够应用 chrome 的查看模式 -> Console,输出$x('XPath 表达式')即可。 ...

February 20, 2024 · 2 min · jiezi

关于测试开发:极客测试开发进阶训练营2022年

download:极客测试开发进阶训练营2022年测试开发是一个旨在进步软件品质的实际过程,它联合了软件测试和软件开发两个畛域的技术和办法。测试开发的指标是通过自动化测试、继续集成和继续交付等办法,确保软件产品的品质和稳定性,同时进步开发效率和降低成本。 一、测试开发的定义和历史 测试开发是一种绝对较新的软件测试办法,最后源于麻利开发和DevOps的理念。测试开发的次要工作是设计和开发测试工具、测试框架和测试脚本,以便主动执行软件测试。这种办法能够让测试人员更加专一于软件品质的评估和晋升,从而进步整个团队的效率和品质。 测试开发最早呈现于2009年,过后它被视为是一种新的测试方法,随着工夫的推移,越来越多的企业开始采纳测试开发来进步软件品质和开发效率。目前,测试开发曾经成为了DevOps中不可或缺的一部分,许多企业都将测试开发作为一项重要的技术策略来推广和利用。 二、测试开发的流程 测试开发的流程包含以下几个步骤: 1.需要剖析:测试开发人员须要依据软件的需要和性能来制订测试计划和测试用例。 2.测试设计:测试开发人员须要设计和编写测试脚本、测试工具和测试框架,以便自动化执行测试。 3.测试执行:测试开发人员须要应用测试工具和框架来执行自动化测试,并生成测试报告和测试后果。 4.缺点治理:测试开发人员须要跟踪和治理测试中发现的缺点,确保它们被及时修复和验证。 5.继续集成和继续交付:测试开发人员须要将自动化测试与继续集成和继续交付相结合,以便疾速部署和交付高质量的软件产品。 三、测试开发的劣势 测试开发在进步软件品质和开发效率方面具备以下劣势: 1.自动化测试:测试开发能够通过自动化测试来缩小手动测试,从而进步测试效率和覆盖范围。 2.疾速反馈:测试开发能够提供即时的测试反馈和报告,让开发人员可能疾速辨认和修复缺点。 3.继续集成和继续交付:测试开发能够将测试和继续集成、继续交付相结合,实现疾速部署和交付高质量的软件产品。 4.降低成本:测试开发能够缩小手动测试和人力老本,同时进步软件品质和稳定性,从而升高整个我的项目的老本。 四、测试开发的挑战 尽管测试开发具备许多劣势,但它也面临着一些挑战: 1.技术要求高:测试开发须要把握较高的技术水平,包含编程语言、自动化测试工具、继续集成和继续交付等方面的常识和教训。 2.测试覆盖率有余:测试开发须要设计和编写大量的测试用例和测试脚本,如果测试覆盖率不够,会影响测试成果和品质。 3.不足测试教训:测试开发人员可能不足传统测试人员的测试教训和思维形式,须要适应新的测试模式和流程。 4.人力资源短缺:测试开发人员绝对于传统测试人员数量较少,企业在招聘和造就测试开发人员时须要破费更多的工夫和精力。 五、测试开发的将来 随着软件行业的疾速倒退和技术革新,测试开发也将面临着新的挑战和时机。将来,测试开发将更加重视人工智能、自动化测试和云计算等技术的利用,以进步测试效率和品质。 同时,测试开发也须要与不同畛域的开发人员和测试人员进行更严密的合作和交换,以便更好地推广和利用测试开发的办法和技术。 总之,测试开发是一种全新的测试方法,它联合了软件测试和软件开发两个畛域的技术和办法,旨在进步软件产品的品质和稳定性。随着技术的倒退和利用的深刻,测试开发将成为软件行业中不可或缺的一部分。

May 19, 2023 · 1 min · jiezi

关于测试开发:精准测试之过程与实践-京东云技术团队

作者:京东工业 宛煜昕 一、怎么的技术•百度百科: 精准测试是一套计算机测试辅助剖析零碎。 精准测试的外围组件蕴含的软件测试示波器、用例和代码的双向追溯、智能回归测试用例选取、覆盖率剖析、缺点定位、测试用例聚类分析、测试用例主动生成零碎,这些性能残缺的形成了精准测试技术体系。 •其余定义 精准测试是中国本人有知识产权的齐全的理论体系,它同时关注性能点和代码相干逻辑这样一个方法论,是一种灰盒的测试模式。 最开始在2014年的国内软件测试大会上公布精准测试的时候,它叫穿线测试,英文名字叫Threading Test,表白了精准测试的实质,Threading这个英文单词自身有两个含意,一个是穿线一个是线程,建设用例和代码的关系,相当于把黑盒和白盒关联起来,做黑盒测试也能看到白盒数据,同时把开发和测试可能关联起来,测试一做完,开发的逻辑马上就能主动生成。另一个层面,精准测试最实质就是线程测试,因为精准测试基于覆盖率白盒实践产生,它跟白盒最大的区别是它的覆盖率是线程级的,也就是说要追溯到用例这个级别。 二、技术倒退•历史倒退 •成熟度模型的五级划分 三、常识与技能这里介绍两款,别离为JAVA和C/C++相干, 第一,开发的根底和外围(编程)常识及所须要用到的版本管理工具(GIT)等。 第二,畛域特定的常识、技术须要具备如下: JAVA:Javassist(官网- https://www.javassist.org/ ), ASM3.0(官网- https://asm.ow2.io/ ), JaCoCo(官网- https://www.eclemma.org/jacoco/)。 C/C++:汇编、反汇编,PE,逆向工程(IDA)。 要用C/C++实现,通用与效率等方面没得说,但各协定的插桩,代码信息的收集,复杂程度和工作量都不是个别人所能接受,要做好心里建设。 间接应用JaCoCo须要留神覆盖率的误差,一些语句行,分支层级,其误差会被指数级放大。其更实用于偏差辅助集体开发者和小型项目组对我的项目覆盖率进行十分根底的评估。 •误差产生的具体成因: 1.简单零碎通常由大量子模块组成,JaCoCo无奈实现对于外部被调用的子模块进行插装,因而对于子模块覆盖率的评估会产生显著的误差。 2.如果某个子模块没有被调用,那么对于JaCoCo来说,该模块内的办法等同于不存在。JaCoCo须要调用该子模块,能力将该子模块内的代码计入覆盖率计算的“分母”。 3.除了几种既定的逻辑意外事件,JaCoCo无奈正确处理例外情况(Exception),如果在管制流程中遇到Exception,JaCoCo会把这种状况间接标记为未笼罩,这种断定形式间接的影响到了对程序逻辑关系的把控,造成对于覆盖率无奈精确评估。 •误差引发的结果: 1.伪瓶颈的产生,以及对测试品质的谬误高估。第一种状况,测试人员投入大量工作之后,却无奈进一步晋升覆盖率,造成对资源和实际的节约;第二种状况,会让用户误将未达标的零碎断定为达标,有可能引发重大的生产事变。 2.无奈实现缺点定位,大量的算法和利用依靠覆盖率的输出,而缺点定位更是其中最次要的实际。 3.回归测试的精准度,受到了重大的影响。 •无损插桩技术(举荐) 精准测试推出的SABI和SASI是中国本人的技术 SABI,SouceCode Analyzer ByteCode Intrumentation,就是说源码剖析,字节码查看,观测和剖析是在源码,插桩是在字节码。 SASI,SouceCode Analyzer SouceCode Intrumentation,这是传统商用白盒最根底的技术,有时候对源码进行剖析,间接在源码插装。源码插装当前,代码通过高级语言、高级编译器的编译,间接生成最初公布包。这种是齐全无损的规范技术,插装代码通过编译器编译后执行可靠性更高。 四、总结与介绍纲要 1、测试范畴,代码剖析 2、差异化 3、调用关系 4、度量与剖析 5、品质评估 6、知识库兼优化 7、用例预剖析 8、自动化测试与精准测试 五、平台>设计思路从产品的需要、功能模块,开发的代码到测试的用例,从正向到逆向的笼罩,追溯和可视。 >纲要 >调用链与代码笼罩应用的是插桩,有点相似C++中的Hook技术,获取所需数据信息。 协定,HTTP,MySql,Dubbo,Redis等,须要先进行剖析,找到要害插桩地位,而后联合应用设计模式进行收集(所需)信息。 设计模式举荐两个,1、反射+适配器,2、动静代理。 须要留神,代码收缩问题。 >影响范畴如果有个利用零碎开发出A版本提测,通过前端性能发动HTTP接口,平台的实时快照收到HTTP接口信息,将该次的接口相干信息(类、办法、执行代码行数)保留为零碎快照; 当A版本开发后变为A_01版本,应用平台对两次版本(Jar包或War包)进行比对,通过零碎快照中信息会剖析出变更项与影响项,如:类、办法、接口。 依据影响用例中的菜单与接口,到接口测试工具中进行执行。 >实现与利用通过数据进行可视化,显示服务/利用的启动,拓扑图,调用链,代码笼罩,版本比对等信息。 ...

May 9, 2023 · 1 min · jiezi

关于测试开发:Ent中文文档持续更新~

疾速开始简介ent 是一个简略而弱小的Go语言实体框架,它使得构建和保护大型数据模型的应用程序变得容易,同时ent遵循以下准则: 轻松地将数据库模式建模为图形构造将模式定义为可编程的Go语言代码基于代码生成的动态类型易于编写的数据库查问和图遍历简略地扩大和应用Go模版进行自定义设置Go环境如果你的我的项目目录在GOPATH之外,或者你不相熟GOPATH,可通过如下的命令进行Go module设置 go mod init entdemo创立第一个模式(Schema)在我的项目的根目录运行以下命令: go run -mod=mod entgo.io/ent/cmd/ent new <Schema-name>该命令会在指定目录:<project>/ent/schema/下生成指定<Schema-name>的模式(示例中Schema为User): package schemaimport "entgo.io/ent"// User holds the schema definition for the User entity.type User struct { ent.Schema}// Fields of the User.func (User) Fields() []ent.Field { return nil}// Edges of the User.func (User) Edges() []ent.Edge { return nil}向Schema中增加2个字段: package schemaimport ( "entgo.io/ent" "entgo.io/ent/schema/field")// Fields of the User.func (User) Fields() []ent.Field { return []ent.Field{ field.Int("age"). Positive(), field.String("nickname"). Default("unknown"), }}在我的项目的根目录运行go generate命令生成文件: ...

March 22, 2023 · 1 min · jiezi

关于测试开发:Go渗透测试编程一前言-Go语言基础简略

前言涉猎Go浸透测试齐全算是出于一种趣味吧,于是就从BHG(Black Hat Go)开始学习了。 Go语言根底对于Go的入门,因为我也是初学者的缘故,所以是跟着tour.go一步一步来学的。就我的感触而言,这个官网的入门指南非常敌对,当然,这可能只是我井底之蛙的想法,所以就不做强烈推荐了,仅仅是当作摘录,对Go的学习做一些简略的笔记就好。(本文就不做什么环境配置教程了,感觉Google、Baidu都是,详略切当,不缺我水的这么一段文字。) Go命令编译 go run // 编译并运行,然而不生成二进制文件go build //编译应用程序,包含所有的包及其依赖项,毋庸进行装置穿插编译 GOOS="linux" GOARCH="amd64" go build hello.go查问文档 go doc 获取第三方包 go get //门路和导入的包名称的构建形式,防止将雷同的名称调配给多个包主动格式化源代码 go fmt报告款式谬误 go vet 包咱们依照常规,从helloworld动手 示例:hello.gopackage mainimport "fmt"func main() { fmt.Println("Hello World!")}以上就是一个Go版本的HelloWorldGo程序的后缀为.go, 每个Go程序由包形成,程序从main包开始运行 函数函数格局func func_name(parameterA type) type { ...}命名返回值Go的返回值可被命名,被视作定义在函数顶部的变量返回值的名称该当具备肯定的意义,能够作为文档被应用没有参数的return语句返回已命名的返回值倡议返回语句应用在短函数中,防止影响代码的可读性省略内容因为Go的语言根底内容较多,我不便在这里班门弄斧,对于学习更有用的应该是间接到tour of Go走一遍指南,会学习到更多

November 7, 2022 · 1 min · jiezi

关于测试开发:揭秘百度智能测试在测试评估领域实践

作者 | intelligents 前几篇,散布介绍了测试流动测试输出、测试执行、测试剖析、测试定位和测试评估五个步骤中测试输出、执行、剖析的智能化钻研和实际,本章节重点介绍测试评估环节的智能化实际。 测试评估是通过收集品质保障流动过程产生的各类零碎体现数据,利用策略进行剖析,以进一观测通过全副品质流动后的品质危险,此次剖析区别于测试报告,如性能测试报告、功能测试报告,测试报告是针对某项品质流动揭发有无问题的报告,测试评估是从危险水平去判断是否要减少品质流动。测试评估往往是品质保障人员最容易漠视的环节,但随着测试自动化水平程度的晋升,测试人员往往只通过自动化报告去判断品质危险,而短少必要的剖析,极容易造成漏测。 测试评估智能化通过将数据、算法、工程等相干技术有机联合,从品质流动零碎体现数据、变更危险水平等方面,利用策略或算法预估我的项目准出的危险,以最终决定我的项目是否能够上线。测试评估的钻研次要从危险引入、品质流动数据挖掘、危险度评估等多个畛域进行钻研,在该畛域的实际绝对较少,百度QA始终在摸索钻研和实际。本章节将从对应实际角度,介绍相干畛域的指标、思路,波及到的技术点、成果,心愿能给到大家肯定参考。 一、基于研发行为的品质危险维度开掘品质危险引入次要是研发阶段,即研发写出有危险代码。钻研该过程,实际上是在探寻何种人在何种背景下写出何种代码容易引入危险,挖掘出因素并进行结构化,进而通过模型进行辨认危险,为下一步危险管制和决策提供根据。 开掘品质危险引入的维度有项目风险、人员危险、代码危险等, 项目风险包含开发时长、模块数、变更数等维度,能够掂量出我的项目规模; 人员危险包含千行代码bug率、我的项目相熟度、提测打回数等,能够掂量出研发人员的靠谱水平。 代码危险包含两类,一类是变更行、函数、复杂度等代码变更信息,能够掂量出复杂程度;另一类是影响接口、UI、场景对应的用户密度、问题密度等,能够掂量出变更代码可能影响面。 基于这些数据,建设模型和规定,能够失去危险产生概率和危险产生造成危害大小,帮忙判断我的项目qa须要染指水平,如是否能够自测、无人值守。 数据维度抉择、采集是辨认的根底。 1、 项目风险、人员危险依赖我的项目过程中留存数据,在整个交付过程会失去采集、荡涤和落盘; 2、 代码危险可由历史提交状况,联合代码语法树剖析AST和深度算法辨认等技术计算失去,用来判断危险概率,如稳定性危险、性能危险等。 依赖危险能够通过rpc+mesh等零碎架构进行获取,获取服务相互间依赖,再联合代码了解,判断我的项目变更是否会带来服务间影响,进而判断依赖危险概率。 二、准入危险评估及利用准入危险评估次要由危险维度数据、危险决策、工作类型三局部组成,以判断我的项目预计须要用何种品质流动进行笼罩,如齐全自动化、RD自测即可、QA染指或染指水平。 准入危险评估实质是测试前辨认危险,依据危险举荐/预警品质流动和测试用例。建设通用数据挖掘工程能力买通数据血缘关系,获取项目风险画像、人员危险画像、代码动动态危险画像等,基于画像信息建设危险辨认能力量化危险;危险管制实质是针对已辨认危险给出执行倡议和充沛度评估;深刻危险跟踪&管制,智能决策生成或执行能充沛裸露危险的测试流动(如功能测试、策略测试、性能测试、灰度等),使得零碎危险和产品质量危险最低;驱动测试流动从传统的教训执行触发模式向充沛度评估领导的危险驱动执行模型转变,在测试流动无奈笼罩所有已辨认危险即测试充沛度不满足需要时给出优化倡议补充测试领导。危险决策实质是综合思考危险产生概率和危险产生时的影响水平进行综合决策,借鉴偏专家教训的规则化决策以及风控模型,产出基于规定、模型、影响的整体量化决策计划。整个危险决策闭环流程蕴含危险追踪数据获取、危险数据特色筛选、特色荡涤、特色解决、模型开发、校验评估、模型上线、监测标注,并且将标注后果反哺危险追踪数据,实现整个危险决策流程良性循环。 准入危险评估论断次要用于测试工作散发、流程流转、测试人员散发等,通过准入危险评估论断领导后续品质形式抉择自动化工作跳过、无人值守、自主测试、何种类型的QA染指,总之危险准入评估,能够用来做品质流动的最优散发,晋升品质流动的合理性。 三、多维流动过程数据挖掘我的项目通过准入危险评估后,会进入到品质流动进行对应的测试,须要记录每个品质流动的痕迹,用来判断通过品质流动后,后期危险准入评估危险是否失去笼罩,本环节就是要钻研获取何种维度品质流动数据和抓取。上面次要讲得是比拟外围的白盒覆盖率,日志覆盖率,业务申请笼罩,仿真性等数据挖掘。 白盒覆盖率:次要是测试过程中,测试用例对我的项目的笼罩水平,用于评判测试的齐备性,细分我的项目有语句、断定、分支、函数等等。支流的实现思路是通过对源码文件在编译过程中产生的预处理文件进行插桩解决,及对预处理文件埋点记录函数,而后失常去编译。当正在运行的程序走到相干的代码行便会进行记录,再去对记录的数据进行开掘和采集,失去白盒覆盖率数据 日志覆盖率:个别指的是异样日志的笼罩状况,次要用于检测异样测试的充沛度。和白盒覆盖率相比,不须要独自插桩编译,会省时许多。支流的实现逻辑是应用独自的日志打印的逻辑函数。当正在运行的程序走到相干的函数便会进行记录,最初统计测试用例能够笼罩的日志状况,最终失去日志覆盖率的数据 业务申请笼罩:次要指的是通过业务场景建设业务申请常识图谱,依据教训,自身场景危险大小去细化申请门路,最终分危险级别给出所有业务场景汇合,在执行测试用例的时候,来判断测试用例中业务申请在业务场景中的笼罩状况,失去业务申请笼罩的数据。 仿真性:次要分两类,一是环境仿真性,次要是和线上环境的仿真水平,包含机器,网络,程序版本,上下游状况等等,失去环境仿真性数据;二是流量仿真性,包含流量大小,潮汐,覆盖范围等等,通过数据的统计失去流量仿真性,最终给出仿真性数据。 四、基于模型的危险评估以往当我的项目提测时,评估我的项目品质危险更多的是依据测试人员的以往测试教训来决定的。但这种评估项目风险的伎俩存在着人工判断存在盲区,测试人员经验不足等问题,因而基于模型的品质危险度评估零碎应运而生。 本环节就是利用前几个阶段的危险维度数据+品质流动数据,用模型或规定预估我的项目最终危险大小,来判断我的项目是否应该上线或补充测试。 在危险评估中,须要思考危险的产生的概率和危险产生的影响进行决策,因而在决策计划上,采纳基于规定+模型+影响来进行量化决策。首先,建设危险概率模型,通过历史数据主动学习“教训”,用以评估项目风险产生的概率。在模型选型上,模型须要有肯定的可解释性,且品质数据量较少,速度要求低等个性。并且针对业务测试数据对各种分类算法进行成果验证。综合以上考量,选取逻辑回归(LR)作为分类模型。在模型特色选取上,选取危险引入(代码危险指标,人员危险指标等)和危险移除(测试充沛度,监控齐备度等)两个维度的多类特色数据作为模型输出。而后,在危险决策论断给出方面,采纳危险矩阵法的思路,综合思考危险的遗留概率(危险产生的可能性)和危险的影响水平(危险的重大水平),得出危险的评估论断。最初,通过危险报告可视化等门路欠缺反馈闭环,继续优化模型迭代。 通过上述品质危险维度设计、危险准入评估、品质流动数据挖掘、危险准出评估,四个环节零碎实现,把所有环节连接起来,落地业务线,在提质增效上获得很好的成果: 危险评估单Q22-Q3共辨认1000+不可自主测试项目,共拦挡300+bug;危险评估托管4000+自主测试项目,约节俭2000+人天 。 基于危险决策进行品质保障畛域,才刚起步,后续百度QA将继续从上述四个维度进行技术和算法钻研,以进一步晋升准召。 ---------- END ---------- 举荐浏览【技术加油站】系列: 揭秘百度智能测试在测试剖析畛域实际 揭秘百度智能测试在测试主动执行畛域实际 揭秘百度智能测试在测试主动生成畛域的摸索 【技术加油站】浅谈百度智能测试的三个阶段 【技术加油站】揭秘百度智能测试规模化落地

October 19, 2022 · 1 min · jiezi

关于测试开发:自研配置表检查工具

前言:很多项目组也都有本人的检配表查办法,我也见过两个项目组的两种不同做法,然而我是不太认同的。我综合思考出另外一种做法(集体感觉是不错的,而且目前履行起来深得我意),然而因为某些起因,我没有在原来我的项目中去推动我的想法实现。 这个想法两年前就有了,惋惜始终没机会实际。2020 年 4 月的时候终于迎来一次机会,于是把想法付诸理论。现在回望,也是颇有感叹。写一写我怎么做的吧。 筹备:我须要去思考的一些点:配表改变可能会很频繁,包含但不限于增删表头、改数据格式等配表可能会有多文件夹同名表格(SLG 多赛季,不同赛季会有 season1、season2 文件夹,而且 season 下也可能有同名表)当配置表多、规定多的状况下,需不需要去思考效率问题。小几分钟出查看后果,我能够承受,10 以上是不能承受的。简略、方便快捷反对规定配置,规定增删简单明了输入谬误问题要不要思考平台化...... 尝试实现:不晓得咋想的,过后就有一个想法,通过规定表映射去查看配表(刚好满足很多我的需要)。具体做法是: 新建规定查看文件夹将须要查看的表格复制过去,删除表格内容,在对应列配置规定这个做法在落实之后也有一些小问题继续优化,这点前面说。先说下外围做法的实现: main 函数 if __name__ == '__main__': table = Table() //这里用xlsx作为规定配置表,是因为前面优化有主动写入性能,相比xls,xlsx会更不便一些 excel = file.File.get_file_dir(config.RULE_DIR, file_type=".xlsx") d_excel = file.File.get_file_dir(config.DOC_DIR, file_type=".xls") dd_excel = [i+"x" for i in d_excel] print("策动配置表有然而规定表没有的表格(留神补充):", list(set(dd_excel).difference(set(excel)))) print("规定表有然而策动配置表没有的表格(能够删除):", list(set(excel).difference(set(dd_excel)))) for every_excel in excel: # if every_excel != "\冬天的机密表.xlsx": # continue check_excel(every_excel)check_excel 办法外围代码for head_name in head_list: if head_name == '': continue if head_name not in d_head_list: print(head_name, excel_name, "规定表的表头不存在配置表的表头") continue d_col = d_head_list.index(head_name) col = head_list.index(head_name) for i in range(config.ROW_START, sheet.nrows): if sheet.cell_value(i, col) is "": continue cell = str(sheet.cell_value(i, col)).replace('\r', '').replace('\n', '').replace('\\', '\\\\') try: # value_dict = json.loads(cell) value_dict = json.loads(cell, strict=False) except ValueError: print("@@@@@@@@@@@@@@@@@@@规定配置谬误{}".format(cell), excel_name) (key, value), = value_dict.items() # 传参:所查看的表的相干信息 getattr(rule, config.switch[key])(value, excel_name=excel_name[:-1], sheet_name=sheet_name, col_index=d_col)Rule 规定定义与代码实现我心愿把 rule 别离归类,这样会非常容易去找到我对应的规定。我在 config 中会配置有多少类规定,比方 In 类规定,泛指 A 列存在 B 列、当 A=X,B 列存在 C 列...此类规定;Match 规定,蕴含 A 列满足正则表白、当 A 列=X,B 列满足正则表白这两种规定。 ...

January 25, 2022 · 3 min · jiezi

关于测试开发:基于Jacoco-的二次开发解决不同版本-exec-数据合并问题

概述对于 Jacoco 现实的应用场景:在测试阶段,可能实时统计手工测试的代码覆盖率状况理解了 jacoco 的一些根本应用办法后,发现要满足这个应用场景,至多须要解决 2 个问题。类批改,带来的探针数据合并问题办法的批改,对探针数据造成的影响上面讲讲具体问题以及解决思路重点阐明:以下实际应用一般 java 类测试,并且我所应用的是 JDK8。大于 JDK8 版本的插桩逻辑并不相同,如果是 JDK9 及以上版本,可能并不实用 问题一类批改,带来的探针数据合并问题图 1如图 1 所示,批改前的 Hello.java 文件,蕴含 3 个办法:A/B/C,批改后蕴含 4 个办法:A/B/C/D。收集批改前 Hello 类的探针数据 (假如 A/B 办法已执行):dump1.exec批改 Hello 中的 B 办法,而后从新收集探针数据 (假如 C/D 办法已执行):dump2.execdump1.exec 和 dump2.exec 的数据合并,想要合并后的覆盖率数据中包含:已被执行办法【A/C/D】,未被执行办法:【B】合并 exec 数据应用 jacoco 的 merge 指令,merge 对于同一个类文件数据是否能合并的次要判断逻辑代码如下: public void assertCompatibility(final long id, final String name, final int probecount) throws IllegalStateException {/** ////这里是我加的正文同一个java文件,每次批改后对应生成的classId都是不统一的,所以在这个中央就会被判断不通过,无奈合并同一个java文件的统计数据假如这里正文掉id的判断逻辑,持续往下执行 */ if (this.id != id) { throw new IllegalStateException( format("Different ids (%016x and %016x).", Long.valueOf(this.id), Long.valueOf(id))); } if (!this.name.equals(name)) { throw new IllegalStateException( format("Different class names %s and %s for id %016x.", this.name, name, Long.valueOf(id))); }/**////还是我加的正文如果下面的id判断逻辑正文掉,在这外面探针数组长度的时候还是会校验失败,Hello.java文件批改后,新增了D办法,导致Hello类文件的探针数据长度是产生了变动,这里长度校验会失败;假如没有新增D办法,同时假如数组长度刚好统一可能合并。但同时无奈过滤掉批改前(dump1.exec)B办法的统计数据所以仅仅正文掉id的判断逻辑是行不通的*/ ...

January 19, 2022 · 3 min · jiezi

关于测试开发:JMeter性能测试

JMeter性能测试 专题目录

November 22, 2021 · 1 min · jiezi

关于测试开发:测试开发之性能篇性能测试设计草稿

很多敌人接触性能测试是从工具开始的,比方风行的JMeter、Loadrunner等。相熟一个测试工具,有助于对性能测试的运作机制、指标采集和统计分析等过程和机制,有个直观的了解。 咱们晓得,工具始终是为解决特定问题而服务的。无论是什么类型的测试,其指标不外乎两个,一是为了证实零碎满足当初的构想(Requirement);二是尽可能早、尽可能多地发现潜在的问题(Defect)。为了更好地实现这两个指标,工具的应用是绝对容易和可控的,而性能测试计划、过程的优劣和有效性则显得尤为重要。 通常,咱们在做性能测试方案设计时,会从以下几个角度来思考问题。 编号名称形容1性能指标零碎在惯例的工作负荷下,各项性能指标是否满足当初设计要求。2数据容量可预期的将来业务增长状况下,大数据量可能引发的性能瓶颈。3能力评估单位资源、工夫内,零碎可解决的业务量。可用于仿真环境到生产环境的软硬件资源估算。4压力测试验证零碎在超出失常负载状况下的性能体现。可据此评估生存环境中,不同类型软件硬件资源的配比。5疲劳测试长时间施加一定量的负载,验证零碎是否会呈现诸如内存透露、网络拥挤等方面的问题。6强度测试验证零碎在高强度、资源匮乏的状况下,仍然能够失常工作,未产生零碎解体、重启,解决能力急剧下降,以及数据不统一等问题。以上列出的性能测试中的一些着眼点,之间的通常会有穿插,界线也并不那么显著。所以笔者并没有像一些软件工程实际(如RUP)中的那样,称之为不同的性能”测试类型“。 讲到性能测试场景的设计,就离不开业务上的剖析,个别能够思考: 零碎的用户规模有多大?在可预期的将来某个工夫点,数据量会达到多少?各个子系统、功能模块,别离需接受多大访问量?在特定的日期或工夫,是否存在某个业务的峰值?依照现有的架构设计和资源配比,可能的瓶颈在哪?倡议和市场、产品和开发等相干人员一起,预估将来规模、开展业务剖析、确认性能需求。而后,开始性能测试场景的设计。通常包含以下的几个方面: 确定测试零碎中的注册用户和同时在线用户数;抉择测试的接口,确定所须要反对的每秒访问量;设计综合业务场景,包含其中各个接口申请量的占比;针对资源耗费大的,如AI训练、文件读写、网络传输,重点进行测试;评估容易出问题的中央,独自设计测试场景;确定各场景下的测试参数,如思考工夫、运行时长、加压策略;确定服务环境,如硬件资源、网络带宽、(微)服务配比、负载平衡;确定测试工具和环境,如加压节点数量、测试工具配置等。测试中须要度量的性能指标包含: 吞吐量(Throughput)每秒查问率(QPS)响应工夫(RT),包含均匀、最大、最小、正态分布申请失败或业务错误率零碎指标,如CPU、内存、网络的方面专题目录

October 29, 2021 · 1 min · jiezi

关于测试开发:测试开发之性能篇JMeter接口测试

专题目录

October 27, 2021 · 1 min · jiezi

关于测试开发:测试开发之自动化篇有效测试数据管理

专题目录

October 25, 2021 · 1 min · jiezi

关于测试开发:测试开发之自动化篇自动化测试框架设计

专题目录

October 25, 2021 · 1 min · jiezi

关于测试开发:测试开发之自动化篇Appium环境部署

测试开发之自动化篇-Appium环境部署

October 21, 2021 · 1 min · jiezi

关于测试开发:测试开发之自动化篇Appium测试执行

测试开发之自动化篇-Appium测试执行

October 21, 2021 · 1 min · jiezi

关于测试开发:测试开发之自动化篇Appium脚本开发

测试开发之自动化篇-Appium脚本开发

October 21, 2021 · 1 min · jiezi

关于测试开发:测试开发之自动化篇Selenium-Web测试-3

接下来,咱们给大家介绍如何应用Selenium Grid在近程节点上执行测试。

October 19, 2021 · 1 min · jiezi

关于测试开发:测试开发之自动化篇Selenium-Web测试-2

上面,咱们应用Java的编辑器来执行后面录制的Selenium代码。

October 19, 2021 · 1 min · jiezi

关于测试开发:测试开发之自动化篇Selenium-Web测试

测试开发之自动化篇-Selenium Web测试

October 19, 2021 · 1 min · jiezi

关于测试开发:测试开发之前端篇JavaScript脚本语言

专题目录

October 14, 2021 · 1 min · jiezi

关于测试开发:测试开发之前端篇浏览器开发者工具使用

专题目录

October 14, 2021 · 1 min · jiezi

关于测试开发:使用公有云作为测试环境

应用阿里云和华为云进行测试

October 8, 2021 · 1 min · jiezi

关于测试开发:使用虚拟化平台作为测试环境

应用VMWare和VirtualBox进行测试

October 8, 2021 · 1 min · jiezi

关于测试开发:测试开发之前端篇CSS层叠式样式表

CSS是层叠样式表(Cascading Style Sheets)的缩写,用于形容如何在屏幕、纸张或其余媒体上显示HTML元素,包含了定义网页及其元素的布局、格调、大小、地位和色彩等属性。 CSS的语法示意为: 以下是一个简略的例子,设置了网页主体(body)的背景色、题目(h1)的色彩和对齐形式、段落(p)的字体和大小。 body { background-color: lightblue;}h1 { color: white; text-align: center;}p { font-family: verdana; font-size: 20px;}网页中有3种援用样式表的办法,别离为: 在head中应用link元素,导入内部样式表文件。<head> <link rel="stylesheet" type="text/css" href="mystyle.css"></head>在网页head中应用style元素,定义样式表内容。<head><style> body { background-color: linen; } h1 { color: maroon; margin-left: 40px; } </style></head><body> <h1>This is a heading</h1> <p>This is a paragraph.</p></body>应用style属性,间接将款式内容增加到元素中。<body> <h1 style="color:blue;text-align:center;">This is a heading</h1> <p style="color:red;">This is a paragraph.</p></body>咱们能够应用不同的CSS选择器,给元素设置款式,如下html中,能够应用#desc来选中id为desc的div元素,应用.btn抉择所有蕴含类btn的提交按钮。 <head><style> #desc { background-color: blue; } .btn { font-size: 20px; } </style></head><body> <div id="desc">This is a desc</div> <button class="btn">提交</button></body>在Selenium自动化测试脚本中,通常应用CSS选择器,来定位网页中的元素。如以下代码,查找class为btn的按钮,并进行点击。 driver.find_element_by_css_selector('.btn').click()倡议大家浏览一下CSS属性手册和CSS选择器手册,以加深对层叠式样式表的理解。这部分内容不须要大家记忆,在当前的自动化测试工作中,作为手册进行查找即可。 专题目录

September 3, 2021 · 1 min · jiezi

关于测试开发:测试开发之前端篇HTML超文本标记语言

后面的文章中,给大家介绍了一个规范HTML页面的组成部分。为更好地把握这些内容,倡议大家浏览HTML标签参考手册,并应用其中的”入手试一试“的性能,直观地体验下这些元素所展现的内容。 HTML是Web自动化测试和网页设计的一个根底,上述教程曾经做的很欠缺,大家浏览一遍,有个根本的理解即可。后续学习中如遇到不明确的中央,可当做手册来查问。 专题目录

September 3, 2021 · 1 min · jiezi

关于测试开发:405状态码演示

服务端(申请地址为:http://localhost:8081/getmoney)只设置post办法,没有设置get办法,具体如图。 在postman中采纳get(http://localhost:8081/getmone...)办法来申请,失去的响应为405Z状态码,如下图。因而呈现405状态码的起因是申请办法谬误。

August 10, 2021 · 1 min · jiezi

关于测试开发:测试开发之前端篇Web前端简介

测试开发之前端篇-Web前端简介

July 26, 2021 · 1 min · jiezi

关于测试开发:测试开发之系统篇安装KVM虚拟机

虚拟机(Virtual Machine)和容器(Container)是两种风行的虚拟化技术。 虚拟机模仿机器的硬件,包含了残缺的操作系统和利用,它一旦被开启,预调配给它的资源将全副被占用。容器是运行在宿主机上的一个过程,多个容器之间应用同一个宿主机的操作系统内核。容器绝对于虚拟机启动更快、占用资源更少,但隔离和安全性要弱于虚拟机。 测试人员为了筹备不同的测试环境,往往应用可视化的VMWare、VirtualBox软件,来模仿不同的操作系统和浏览器。本文介绍另外一种Qemu+KVM的虚拟化解决方案,通过它在自动化测试中,咱们能够应用命令行,按需地主动创立、销毁和治理虚构测试机。另外,理解这种计划,也是后续自动化测试平台搭建的一个铺垫。 这里应用Ubuntu20.04桌面版来作为宿主机,搭建虚拟化环境。 (1)验证主机是反对虚拟化,有输入表明反对。 root@pve:~# egrep -o "(vmx|svm)" /proc/cpuinfo vmxvmxvmx(2)装置虚拟化软件 sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients qemu virt-manager bridge-utilssudo service libvirtd restart老的Ubuntu零碎,请用以下命令替换。 sudo apt-get install qemu-kvm libvirt-bin qemu virt-manager bridge-utilssudo service libvirt-bin restart(3)下载零碎和驱动 从这里下载微软Win10官网光盘镜像;在这里下载虚机I/O设施驱动,我抉择的是稳定版virtio-win-0.1.185.iso。(4)关上虚拟机管理工具 在图形界面中关上终端,输出virt-manager,启动虚拟机管理工具;图中显示的QEMU/KVM表明,已胜利连贯到本地服务;如果状态为断开,请双击尝试连贯,若显示不能连贯到libvirtd服务,可重启机器修复;您也能够通过点击菜单“文件->增加连贯”,来连贯和治理近程宿主机上的虚拟机。(5)新建虚拟机 点击菜单“文件->新建虚拟机”,关上虚拟机创立向导;抉择后面下载的Win10镜像文件作为本地装置介质。网络设置页面,抉择“主机设施”也就是宿主机的网卡,这样虚构机会作为局域网中的一台电脑而存在。按向导实现其余设置,并保留。(6)设置虚拟机 双击关上虚拟机窗口,点击”查看->详情“,进入虚拟机属性页面;点击疏导选项卡,设置零碎从光盘启动;点击左下角”增加硬件”,减少一个光盘,指向下载的virtio驱动。(7)装置虚拟机 启动后,主动从光盘装置零碎;Windows装置向导中,抉择加载驱动程序;抉择virtio驱动CDROM里,NetKVM目录下对应零碎的文件;实现后续的装置步骤。(8)完结装置 装置实现后,再次关上虚拟机窗口;进入CDROM选项卡,删除装置光盘;启动虚拟机,更新零碎,并装置测试相干软件。

July 23, 2021 · 1 min · jiezi

关于测试开发:测试开发之系统篇Docker常用操作

是对方是否第三方第三方

July 20, 2021 · 1 min · jiezi

关于测试开发:测试开发之系统篇Docker容器安装

后面文章咱们讲到,容器是运行在宿主机上的一个过程,多个容器之间应用同一个宿主机的操作系统内核。此处以Ubuntu20.04零碎为例,介绍Docker容器的装置过程。 装置:装置依赖。sudo apt updatesudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-commoncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -增加软件源。sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"装置最新版Docker。sudo apt updatesudo apt install docker-ce docker-ce-cli containerd.io查看服务状态sudo systemctl status docker测试Docker服务执行以下命令,将以后用户退出docker用户组。sudo usermod -aG docker $USER退出、并从新登录。执行以下命令,运行样例容器。docker run hello-world如能输入音讯Hello from Docker,表明装置胜利。 专题目录

July 20, 2021 · 1 min · jiezi

关于测试开发:测试开发之网络篇IP地址

IP地址是IP协定提供的一种对立的地址格局,它为互联网上的每一个网络和每一台主机调配一个逻辑地址,以此来屏蔽物理地址的差别。这里介绍一下目前宽泛应用的IPv4版本。 IP地址应用一种对立的格局,为互联网上的每一个网络、每一台设施调配一个逻辑上的地址。IP地址是一个32位的二进制数,为了不便查看,通常把他分为4组,每组的8位用一个十进制数来表白,造成一个形如192.168.0.10的地址。 IP地址由两局部组成,一个网络ID和一个主机ID,两个局部应用子网掩码来辨别。也因而,一个残缺的IP地址,必须包含主机地址和子网掩码两个局部才有意义,它能够用以下两种模式来表白: 192.168.0.10主机地址 和 255.255.255.0子网掩码:Windows中配置网络地址时,会要求您同时输出这两个值;192.168.0.10/24:24示意子网掩码的二进制位数。对应的10进制分组示意为255.255.255.0。这里显示了3个十进制的255,简略换算关系为24(二进制位数) / 8( 每组8位)= 3(分组数)。将主机地址和子网掩码进行二进制与运算,能够失去网络ID。如果您不相熟二进制运算,能够简略地将IP地址中,对应掩码局部为0的屏蔽。比方:C类192.168.1.10的IP地址,应用子网掩码255.255.255.0屏蔽了第4个分组,失去主机所在的网络ID为192.168.1.0。 这里须要留神的是,子网掩码每个分组的值,并不必须都正好是255或0,255.255.12.0也是一个非法的子网掩码。 人们定义了A、B、C三类的地址,子网掩码别离如下。 A类:255.0.0.0B类:255.255.0.0C类:255.255.255.0也定义了公有IP地址范畴,专门为组织机构外部应用。 A类:10.0.0.0~10.255.255.255 即10.0.0.0/8B类:172.16.0.0~172.31.255.255即172.16.0.0/12C类:192.168.0.0~192.168.255.255 即192.168.0.0/16这些也是您在公司中看到最多的地址。不同组织外部能够应用雷同的公有地址,这是因为企业外部网络同Internet是隔离的,之间通过路由器进行转发,公有地址并没有间接裸露在公共网络中。

June 24, 2021 · 1 min · jiezi

关于测试开发:测试开发之系统篇按需创建测试虚拟机

首先,咱们来理解一下虚拟机无关的几个概念和工具。 kvm:基于内核的虚拟机(引擎)qemu:用于模仿虚拟机IO设施qemu-img:虚拟机磁盘管理工具libvirt:虚拟化服务的API接口virsh:基于libvirt实现的命令行工具qemu-manager:图形化管理工具新建KVM虚拟机时,能够指定另一磁盘文件作为BackingFile。BackingFile是一个只读的虚构磁盘根底映像,能够在多个虚拟机间进行共享。基于BackingFile创立和运行虚拟机时,只会在本人的磁盘文件中增量地写入文件,从而提高效率、节俭磁盘和保护老本。 虚拟机快照保留了虚拟机在某个指定工夫点的状态,当咱们在自动化测试过程中遭逢问题或谬误时,能够利用快照保留、并复原到执行中的某个工夫点。借助BackingFile机制,虚拟机反对形如以下的多层依赖的快照链。 base image <-- vm01 <-- snap 1 <-- snap 2 <-- vm02(active)可应用以下命令,将处于快照链中的某个虚机,导出造成一个独立的磁盘映像文件,其不再依赖其它映像。 qemu-img convert -O qcow2 vm02.qcow2 vm-templ.img假如咱们在用户的工作目录中,建设了以下目录。 kvm 根目录 iso 寄存光盘镜像 base 寄存BackingFile share 寄存共享磁盘镜像,用户存储测试工具、驱动等 image 寄存测试机的磁盘镜像 xml 寄存导出的虚拟机XML配置文件上面用一个例子,给大家介绍下疾速创立测试虚拟机的办法。 依照上一篇文章中的步骤,创立一个Win10虚拟机;在虚拟机中,装置好工作中用到的测试软件;应用以下命令,新建一个共享工具磁盘;qemu-img create -f qcow2 -o cluster_size=2M kvm/share/tools.qcow2 10G挂载共享磁盘到虚拟机,复制工具和文件到该盘中;移除该虚拟机,确认对话框中,请抉择不删除相干磁盘文件;挪动原虚机主磁盘文件到根底镜像目录,如kvm/base/windows/win10/x64-pro-zh_cn.qcow2。执行以下命令,以上述根底镜像作为BackingFile,创立新的虚拟机磁盘;qemu-img create -f qcow2 -o cluster_size=2M,backing_file=kvm/base/windows/win10/x64-pro-zh_cn.qcow2 kvm/image/test-win10-x64-pro-zh_cn-01.qcow2 40G图形界面中,新建测试虚拟机,挂在新建的虚拟机和共享磁盘。除了应用图形界面的qemu-manager软件,这里也提供一种命令行的办法,大家可用于测试平台的代码中。 导出虚拟机XML配置文件virsh dumpxml test-win10-x64-pro-zh > kvm/xml/test-win10-x64-pro-zh.xml批改XML配置文件中的以下字段: nameuuidvcpumemory和currentMemorymac address第1块disk的source file在第1块disk的Elemnt中,退出以下BackingFile无关的内容:<backingStore type="file" index="2"> <format type="qcow2"/> <source file="/home/aaron/kvm/base/windows/win10/x64-pro-zh_cn.qcow2"/><backingStore/>如须要用页面VNC拜访虚拟机桌面,找到XML的graphics元素,批改成以下内容。<graphics type="vnc" port="-1" autoport="yes" listen="0.0.0.0" passwd="P2ssw0rd"> <listen type="address" address="0.0.0.0"/></graphics>应用以下命令定义虚拟机。virsh define kvm/xml/test-win10-x64-pro-zh.xml应用以下命令启动虚拟机。virsh start win10-test应用以下命令获取虚拟机的VNC端口编号,在VNC软件中应用”5900+该数字“的端口,拜访虚拟机远程桌面。virsh vncdisplay win10-test自己已实现了基于libvirt接口的虚拟机治理无关代码,详情请参照网址https://github.com/easysoft/z... 。 常用命令: # 查看虚拟机信息qemu-img info --backing-chain kvm/image/test-win10-x64-pro-zh_cn-01.qcow2# 批改虚拟机磁盘大小qemu-img resize x64-pro-zh_cn.qcow2 +10G# 查看虚拟机里列表virsh list --all# 查看虚拟机VNC端口virsh vncdisplay win10-test# 导出虚拟机XML配置文件virsh dumpxml win10-test > win10-test.xml# 创立虚拟机磁盘镜像qemu-img create -f qcow2 -o cluster_size=2M,backing_file=base.qcow2 win10-test.qcow2 40G# 定义、勾销定义,启动、进行虚拟机virsh define win10-test.xmlvirsh start win10-testvirsh destroy win10-testvirsh undefine win10-test

June 21, 2021 · 1 min · jiezi

关于测试开发:测试开发之网络篇OSI七层协议

明天,咱们来理解一下OSI(Open System Interconnect)开放式系统互连。它是ISO组织在1985年公布的网络互连模型,该规范定义了网络互连的七层框架。其内容简述如下: 咱们办公室或家中,会洽购一些网络设备。通常在京东等网站上搜寻进去的有三种类型,别离是集线器、交换机和路由器,这里介绍一下他们在网络层面的区别。 集线器 工作在OSI的第1层(物理层),只对连贯它的设施进行电信号的转发,不做其余方面的解决。 交换机 是一个2层(链路层)设施,它通过在同一网段中发送播送来寻址,应用所获指标主机的MAC地址,跟同网段的主机进行通信。另外,市场上也存在一种减少了路由性能的交换机,咱们称之为3层交换机。 路由器 是一个3层(传输层设施)设施,它通过互相学习来生成并保护一个路由表,负责在跨网段的环境中进行寻址和转发。 后续的文章中,咱们会对一些网络协议、服务和命令做下介绍。 在这里,请大家先思考一个问题,通常咱们所说的“电脑不能上网了”,可能是会由哪些因素造成的?个别你是如何定位问题的?

June 11, 2021 · 1 min · jiezi

关于测试开发:测试开发之系统篇虚拟测试机

虚拟机(Virtual Machine)和容器(Container)是两种风行的虚拟化技术。虚拟机模仿机器的硬件,包含了残缺的操作系统和利用,它一旦被开启,预调配给他的资源将全副被占用。容器是运行在宿主机上的一个过程,多个容器之间应用同一个宿主机的操作系统内核。容器绝对于虚拟机启动更快、占用资源更少,但隔离和安全性要弱于虚拟机。 测试人员为了筹备不同的测试环境,往往应用可视化的VMWare、VirtualBox软件,来模仿不同的操作系统和浏览器。本文次要介绍另外一种Qemu+KVM虚拟化解决方案,在自动化测试中,咱们能够通过命令行,按需地主动创立、销毁和治理虚构测试机。另外,这种计划也为后续的自动化平台的搭建做好了铺垫。 这里应用Ubuntu20.04桌面版来作为宿主机,搭建虚拟化环境。(1)首先通过以下命令,验证硬件是反对虚拟化,有输入表明反对。 root@pve:~# egrep -o "(vmx|svm)" /proc/cpuinfovmxvmxvmx(2)装置、重启虚拟化无关的软件和服务。 sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients qemu virt-manager bridge-utilssudo service libvirtd restart老的Ubuntu零碎,请用以下命令替换。 sudo apt-get install qemu-kvm libvirt-bin qemu virt-manager bridge-utilssudo service libvirt-bin restart(3)下载ISO光盘镜像文件: 从这里下载微软Win10官网光盘镜像;在这里下载虚机I/O设施驱动,我抉择的是稳定版virtio-win-0.1.185.iso。(4)应用virt-manager创立虚拟机在图形界面中关上终端,输出virt-manager,启动虚拟机管理工具。 图中显示的QEMU/KVM表明,已胜利连贯到本地服务。如果状态为断开,请双击尝试连贯,若显示不能连贯到libvirtd服务,可重启机器修复。您也能够通过点击菜单“文件->增加连贯”,来连贯和治理近程宿主机上的虚拟机。点击菜单“文件->新建虚拟机”,关上虚拟机创立向导。将后面下载的2个ISO文件,加载到虚拟机的光盘中;在最初一步网络设置中,抉择“主机设施”也就是宿主机的网卡,这样虚构机会作为局域网中的一台电脑而存在。。启动虚拟机,主动从光盘装置零碎。Windows装置向导中的第2步,抉择装置驱动程序,并加载驱动CDROM里NetKVM目录下对应零碎的文件。装置实现后,virt-manager主动移除光盘,从硬盘启动虚拟机。虚拟机启动胜利后,更新零碎、并装置测试无关的工具。(5)制作虚拟机BackingFile文件BackingFile是一个只读的虚构磁盘根底映像,能够在多个虚拟机间进行共享。基于BackingFile创立和运行虚拟机时,只会在本人的磁盘文件中增量地写入文件,从而节俭磁盘和保护老本。 在virt-manager中,尝试删除某个须要转换成BackingFile的虚拟机;对话框中,勾销抉择“删除关联的存储文件”,而后点击“删除”按钮。(6)从BackingFile文件创建虚拟机执行以下命令创立新的虚拟机: qemu-img create -f qcow2 -o cluster_size=2M,backing_file=/home/jenkins/kvm/backing-image/win10-x64-cn_zh-backing.qcow2 /home/jenkins/kvm/image/win10-test1.qcow2 30G

June 9, 2021 · 1 min · jiezi

关于测试开发:测试开发之系统篇常用系统命令

以下介绍测试工作中罕用的一些命令。未专门标注的,为Linux和Mac零碎下的。 查看占用端口的过程Linux aaron@ubuntu:~$ lsof -i :8085 | grep LISTEN___server 69080 aaron 11u IPv6 0x5624b7cdebdb6b7b 0t0 TCP *:8085 (LISTEN)Windows C:>netstat -aon | findstr :80 | findstr LISTENING TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 2588 TCP [::]:80 [::]:0 LISTENING 2588杀死过程Linux aaron@ubuntu:~$ kill -9 69080Windows PS C:\WINDOWS\system32> taskkill /F /PID 8152SUCCESS: The process with PID 8152 has been terminated.Windows下权限有余的,可右击开始按钮,用管理员模式启动PowerShell。 按名称查看过程aaron@ubuntu:~$ ps -ef | grep nginx | grep -v greproot 21471 1 0 2020 ? 00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;www-data 21472 21471 0 2020 ? 00:07:55 nginx: worker process应用grep -v grep过滤掉该查看过程自身。 ...

May 28, 2021 · 2 min · jiezi

关于测试开发:测试开发专题文章目录

1. 测试开发专题-开篇2. 测试开发之网络篇-OSI七层协定3. 测试开发之网络篇-罕用服务协定4. 测试开发之网络篇-IP地址5. 测试开发之网络篇-网络路由6. 测试开发之网络篇-常用命令7. 测试开发之网络篇-网络问题定位

May 24, 2021 · 1 min · jiezi

关于测试开发:测试开发之网络篇常用命令

ping能够用来检测达到另一个主机的连通性,据此咱们可能: 判断网络连接是否通顺;获取某个域名的IP地址;依据time值获取网络的响应速度;依据ttl值判断数据包通过的路由器数量。macbook:~ aaron$ ping baidu.comPING baidu.com (220.181.38.148): 56 data bytes64 bytes from 220.181.38.148: icmp_seq=0 ttl=52 time=32.157 ms64 bytes from 220.181.38.148: icmp_seq=1 ttl=52 time=34.663 ms64 bytes from 220.181.38.148: icmp_seq=2 ttl=52 time=32.626 ms--- baidu.com ping statistics ---4 packets transmitted, 4 packets received, 0.0% packet lossround-trip min/avg/max/stddev = 32.157/32.971/34.663/0.991 ms以上通过ping百度的域名,失去其IP地址为220.181.38.148;响应工夫小于50毫秒,阐明网速失常。 后面的文章咱们讲到,在不同的网段间转发数据包是由路由器实现的。这里的TTL是 Time To Live的缩写,示意IP包被路由器抛弃之前,容许通过的最大网段数量。不同的操作系统初始值可能不一样,但均为2的N次方。这里咱们应用离返回值52最近的2^6也就是64作为初始值,那么途中则通过的路由器数量能够用64-52=12来计算失去。 traceroute用来检测到指标主机之间所通过的路由器数量。首先,它发送一份TTL(存活工夫)为1的数据包给目标主机,解决这个数据包的第一个路由器将TTL值减1,而后抛弃该数据报,并返回一个蕴含路由器IP地址的ICMP报文,而后顺次减少TTL的值持续。 macbook:~ aaron$ traceroute -q 1 114.114.114.114traceroute to 114.114.114.114 (114.114.114.114), 64 hops max, 52 byte packets 1 192.168.0.1 (192.168.0.1) 2.908 ms 2 192.168.1.1 (192.168.1.1) 3.831 ms 3 58.208.178.1 (58.208.178.1) 5.278 ms 4 218.4.30.205 (218.4.30.205) 7.611 ms 5 221.224.235.61 (221.224.235.61) 7.858 ms 6 10.255.61.9 (10.255.61.9) 8.547 ms 7 61.155.228.158 (61.155.228.158) 13.068 ms 8 * 9 *这里-q示意每次发送一个包,星号示意的行,可能是因为防火墙封掉了ICMP的返回信息。 ...

May 21, 2021 · 1 min · jiezi

关于测试开发:测试开发之网络篇网络路由

本篇文章,目标是简略介绍替换和路由网络的工作形式,为后续章节的浏览做好铺垫。其中暗藏了很多技术细节,有趣味的敌人能够浏览思科CCNA认证相干的材料,获取更多信息。 互联网是一个宏大的分层网状结构,亿万的设施散布在其中大大小小的子网中。这里咱们做一下简化,假如在咱们的办公室中,存在以下3个子网,子网间通过路由器相连,子网外部应用二层交换机或无线热点连贯了一些电脑等设施。 这里的二层交换机是工作在数据链路层的,它保护了一个通过ARP(Address Resolution Protocol,地址解析协定)学习到的、IP地址到物理地址的映射,以此来决定发往某个指标主机的数据包,从哪个端口再转发进来。 路由器是工作在网络层的,它的端口连贯了另一个路由器或交换机,每个端口配置了(达到)不同子网的地址。路由器间应用OSPF(Open Shortest Path First,开放式最短门路优先)协定,互相学习“能够通过哪一个路由器的、哪个端口、达到指定的子网、间隔有多远”等信息,造成一个路由表。 网络里的每个主机,均手工配置、或从DHCP协定主动获取了一个IP地址,包含主机地址、子网掩码和一个默认网关。当子网3中的主机192.168.0.100/24心愿向子网1中的Web服务器172.16.1.10/24发送申请时,数据包首先会被达到默认网关,这里是无线路由器连贯子网3的那个端口的地址,如192.168.0.1。无线路由器查看路由表,以获取通往子网1的最优门路,将数据包通过指定的端口转发给下一站路由器,如此持续实现跨网段的通信。

May 21, 2021 · 1 min · jiezi

关于测试开发:测试开发之网络篇IP地址

这里介绍一下目前宽泛应用的IPv4版本。 IP地址应用一种对立的格局,为互联网上的每一个网络、每一台设施调配一个逻辑上的地址。IP地址是一个32位的二进制数,为了不便查看,通常把他分为四组,每组用一个十进制数来表白,造成一个格局相似192.168.0.10的地址。IP地址由两局部组成,一个网络ID和一个主机ID,两个局部应用子网掩码来辨别。人们定义了A、B、C三类的地址,子网掩码别离如下: A类:255.0.0.0B类:255.255.0.0C类:255.255.255.0一个残缺的IP地址,必须包含主机地址和子网掩码两个局部才有意义,能够用以下两种模式来表白: 主机地址192.168.0.10 + 子网掩码255.255.255.0:Windows中配置网络地址时,会要求您同时输出这两个值;192.168.0.10/24:24示意二进制子网掩码的位数,对应10进制的分组示意为255.255.255.0将主机地址和子网掩码进行二进制与运算,能够失去网络ID。如果您不相熟二进制运算,能够简略地认为将掩码中为0的局部去除,比方:C类192.168.0.10的主机地址,应用子网掩码255.255.255.0运算/屏蔽后,失去主机所在的网络ID为192.168.0.0。须要留神的是,子网掩码每个分组的值,并不是必须都正好是255或0,255.255.12.0也是一个非法的掩码。

May 21, 2021 · 1 min · jiezi

关于测试开发:测试开发之网络篇常用命令

ping能够用来检测达到另一个主机的连通性,据此咱们可能: 判断网络连接是否通顺;获取某个域名的IP地址;依据time值获取网络的响应速度;依据ttl值判断数据包通过的路由器数量。macbook:~ aaron$ ping baidu.comPING baidu.com (220.181.38.148): 56 data bytes64 bytes from 220.181.38.148: icmp_seq=0 ttl=52 time=32.157 ms64 bytes from 220.181.38.148: icmp_seq=1 ttl=52 time=34.663 ms64 bytes from 220.181.38.148: icmp_seq=2 ttl=52 time=32.626 ms--- baidu.com ping statistics ---4 packets transmitted, 4 packets received, 0.0% packet lossround-trip min/avg/max/stddev = 32.157/32.971/34.663/0.991 ms以上通过ping百度的域名,失去其IP地址为220.181.38.148;响应工夫小于50毫秒,阐明网速失常。 后面的文章咱们讲到,在不同的网段间转发数据包是由路由器实现的。这里的TTL是 Time To Live的缩写,示意IP包被路由器抛弃之前,容许通过的最大网段数量。不同的操作系统初始值可能不一样,但均为2的N次方。这里咱们应用离返回值52最近的2^6也就是64作为初始值,那么途中则通过的路由器数量能够用64-52=12来计算失去。 traceroute用来检测到指标主机之间所通过的路由器数量。首先,它发送一份TTL(存活工夫)为1的数据包给目标主机,解决这个数据包的第一个路由器将TTL值减1,而后抛弃该数据报,并返回一个蕴含路由器IP地址的ICMP报文,而后顺次减少TTL的值持续。 macbook:~ aaron$ traceroute -q 1 114.114.114.114traceroute to 114.114.114.114 (114.114.114.114), 64 hops max, 52 byte packets 1 192.168.0.1 (192.168.0.1) 2.908 ms 2 192.168.1.1 (192.168.1.1) 3.831 ms 3 58.208.178.1 (58.208.178.1) 5.278 ms 4 218.4.30.205 (218.4.30.205) 7.611 ms 5 221.224.235.61 (221.224.235.61) 7.858 ms 6 10.255.61.9 (10.255.61.9) 8.547 ms 7 61.155.228.158 (61.155.228.158) 13.068 ms 8 * 9 *这里-q示意每次发送一个包,星号示意的行,可能是因为防火墙封掉了ICMP的返回信息。 ...

May 21, 2021 · 1 min · jiezi

关于测试开发:测试开发之网络篇常用协议服务

TCP/IPTCP/IP协定是当今互联网所采纳的协定。它不仅蕴含TCP、IP两个协定,而是由FTP、SMTP、TCP、UDP、IP等协定形成的一个协定簇。TCP/IP协定的第4层-网络层,负责创立主机间的网络连接,以及实现基于IP(如咱们常见的192.168.0.10)的寻址和转发性能。 DNSDNS(Domain Name System,域名零碎)是一项域名解析服务。它将域名解析成IP地址,以使大家更加不便地拜访互联网。例如,通过ping baidu.com的命令,咱们能够失去百度服务器的IP地址为39.156.69.79。 DHCPDHCP(Dynamic Host Configuration Protocol,动静主机配置协定)用于在局域网中给主机动态分配可用的IP地址。当你的电脑或手机已接入办公室场合或家中的无线WIFI时,能够通过ifconfig(windows下为ipconfig)命令查看DHCP服务器为其动态分配的地址。此处显示了两个IP地址: lo0 127.0.0.1 用于本机通信的环回地址。它是一个永远无效的、每台机器都雷同的虚拟机地址;en0 192.168.0.100 DHCP服务器为第一块以太网卡调配的动静IP地址。机器关机后,会为该机器(网卡)保留地址一段时间。HTTP/HTTPSHTTP(HyperText Transfer Protocol,超文本传输协定)是互联网上应用最为宽泛的一种协定。您目前应用浏览器浏览这篇文章,就是应用的该协定。HTTPS则在其根底上,实现了加密的传输。HTTP/HTTPS是一个无连贯、无状态的应用层协定。也就是说,浏览器通过它向服务器发出请求,获取响应后,连贯就被敞开了。浏览器和服务器间,采纳了一个叫做Session(会话)的机制,使得下一个申请过去时,服务器仍然晓得他是“谁”。服务端辨认Session的办法,通常是用申请的URL或Header中携带的一个惟一标识字符串(如jsessionid、bearer token)来起作用的。后续,在介绍应用PostMan、或编码进行接口测试时,咱们会进一步论述。 WebSocketWebSocket在客户端和服务器之间建设持久性的连贯,容许服务端被动向客户端推送数据,实现双向的数据传输。它解决了以往应用HTTP协定模仿长连贯(Long Polling) 时,资源耗费过大的问题。WebSocket是应用层协定,是TCP/IP协定的子集,它在连贯时通过HTTP协定实现握手。 RPCRPC(Remote Procedure Call Protocol,近程过程调用协定)实现了一台计算机调用另一台计算机上的程序服务,而不须要理解底层的网络技术/协定。RPC能够基于HTTP(应用层)协定实现,也能够间接在TCP(传输层)协定上实现。

May 20, 2021 · 1 min · jiezi

关于测试开发:测试开发之网络篇网络协议简介

明天,咱们来学习一下网络协议的七层架构。对于网络通讯的形式有一个初步理解,有助于对后续内容的了解。OSI(Open System Interconnect),即开放式系统互连,是ISO组织在1985年公布的网络互连模型,该规范定义了网络互连的七层框架。其内容简述如下: 层级名称解释1物理层通过物理介质传输比特流。如定义了针脚、电压,以及网卡、网线、集线器等。2数据链路层负责网络寻址、谬误侦测和纠正。如以太网、无线局域网等。3传输层为下层提供牢靠、通明的数据交换,包含过错解决和流量管制等。如TCP、UDP协定。4网络层通过IP寻址来建设两个节点之间的连贯,路由是产生在这一层的。如IP协定。5会话层建设和管理应用程序之间的通信对话。6表示层解决替换信息的示意形式,如格局、加密和压缩等。7应用层实现利用的对外服务。如浏览网站的HTTP协定、发送邮件的SMTP协定。咱们办公室或家中,会洽购一些网络设备。通常在京东等网站上搜寻进去的有三种类型,别离是集线器、交换机和路由器,这里介绍一下他们在网络层面的区别。 集线器 工作在OSI的第1层(物理层),只对连贯它的设施进行电信号的转发,不做其余方面的解决。 交换机 是一个2层(链路层)设施,它通过在同一网段中发送播送来寻址,应用所获指标主机的MAC地址,跟同网段的主机进行通信。市场上也存在一种减少了路由性能的,咱们称之为3层交换机。 路由器 是一个3层(传输层设施),它通过互相学习来生成、保护一个路由表,负责在跨网段的环境中进行寻址和转发。 TCP/IP是当今互联网所采纳的协定。它不仅蕴含TCP、IP两个协定,而是由FTP、SMTP、TCP、UDP、IP等协定形成的一个协定簇。TCP/IP协定的第4层-网络层,负责创立主机间的网络连接,以及实现基于IP(如咱们常见的192.168.0.10)的寻址和转发性能。 后续的文章中,咱们会对DHCP、DNS、ping、traceroute等网络无关的服务和命令做一下介绍。在这里,大家能够先提前思考一个问题,通常咱们所说的“电脑不能上网了”,可能是会由哪些因素造成的,个别你是如何定位问题的?

May 20, 2021 · 1 min · jiezi

关于测试开发:测试开发网络篇网络协议简介

明天咱们来学习一下网络协议的七层架构,他是所有网络通信和服务的根底。理解这方面的常识,有助于咱们对网络通讯的形式有一个初步的意识。 OSI(Open System Interconnect),即开放式系统互连。是ISO组织在1985年钻研的网络互连模型,该体系结构规范定义了网络互连的七层框架。 层级名称解释1物理层通过物理介质传输比特流。如针脚、电压,以及网卡、网线、集线器等。2数据链路层负责网络寻址、谬误侦测和纠正,如以太网、无线局域等。3传输层为下层提供牢靠、通明的数据交换,包含过错解决和流量管制等,如TCP协定。4网络层通过IP寻址来建设两个节点之间的连贯,如IP协定。5会话层建设和管理应用程序之间的通信对话。6表示层解决替换信息的示意形式,如格局、加密和压缩等。7应用层实现利用的对外服务,如浏览网站的HTTP协定、发送邮件的SMTP协定。

May 19, 2021 · 1 min · jiezi

关于测试开发:appweb和接口测试的测试流程

一、web测试流程1、需要剖析,理解具体需要 2、测试筹备:原型图、效果图、需要文件、测试用用例、用例评审、各种测试数据筹备 3、测试环节:承受版本开始执行 1)冒烟测试:对版本品质的管制以及此版本是否具备测试条件; 2)UI测试:核查效果图 3)功能测试:核查需要文件测试用例,对性能进行验证 4)兼容测试:各个浏览器,手机是否兼容 5)性能测试,服务器接口,多线程等压测 6)平安测试 7)易用性测试:界面与交互性测试,合乎交互标准,用户体验良好,应用方便快捷 8)提交bug,争议bug评审,回归测试 9)自动化测试 a、ui自动化测试 :个别应用python+selenium进行ui自动化测试 4、公布性能,上线验证,公布上线报告 二、app流程测试1、需要剖析,理解具体需要 2、测试筹备:原型图、效果图、需要文件、测试用用例、用例评审、各种测试数据筹备 3、测试环节:承受版本,开始执行 1)冒烟测试:对版本品质的管制以及此版本是否具备测试条件; 2)装置、卸载测试:通过商店装置,且反对应用第三方工具装置 3)在线降级测试:验证数字签名、在线跨版本升级、降级后可应用 4)业务功能测试:业务逻辑测试、性能点测试、关联性测试;对需要和测试用例笼罩 5)稳定性及异样性测试:交互性测试(客户端多种打搅测试,待机拔插线等操作)、断 网 、 断电异样等状况客户端稳固 6)性能测试,服务器接口,多线程压测;客户端不同网络下的响应速度 7)易用性测试:界面与交互性测试,合乎交互标准,用户体验良好,应用方便快捷8)适配性测试:分辨率,不同版本零碎,不同尺寸等反对 9)提交bug,争议bug评审,回归测试 10)手机流量及电量测试:客户端应用监控电量和流量软件,确定符合规范 11)内存泄露测试 12)联机调试测试,关上调试模式,通过logcat记录每个操作,不便谬误定位 13)外网测试:笼罩wifi、2g、3g、4g,电信、挪动、联通所有组合测试 14)自动化测试 a、ui自动化测试 :个别应用python+appium进行ui自动化测试 4、公布性能,上线验证,公布上线报告 三、接口测试流程1、需要剖析:接口之间的逻辑关系,接口文档具体理解 2、测试筹备:接口文档、接口测试用例、各种测试数据筹备 3、测试环节,承受版本 1)功能测试:功是否依照接口文档实现 2)业务逻辑:是否依赖业务 3)参数异样:a关键字参数(语言中的关键字)、b参数为空、c多少参数、d谬误参数 4)数据异样:a关键字数据、b数据为空、c长度不统一(短处数据库字段长度)、d谬误数据 5)平安:cookie、header(特地是挪动端应用)、惟一识别码(客户端罕用) 6)回归测试 7)自动化测试:个别应用python+requests进行接口自动化测试4、公布性能,上线验证、发送上线报告 四、接口测试工具1、接口测试和接口文档生成工具:apipost 2、接口测试接口性能测试工具:jmeter

December 17, 2020 · 1 min · jiezi

关于测试开发:接口测试header头部详解

一、什么是headerheader:标头 (header) 是服务器以HTTP协定传HTML材料到浏览器前所送出的字串,在标头与 HTML 文件之间尚需空一行分隔。 -----百度百科 header是发送申请时携带的头部信息。通常一些鉴权的信息:authentication/cookie、响应的数据格式:content-type等等的设置。当然响应的数据也会返回一些头部信息。 二、header头部参数对应含意1、Request header: User-Agent:通知Http服务器,客户端应用的操作系统和浏览器名称和版本(这也是辨别pc端或者app端的形式) app端也可辨别Android和iOS如图: 2、Clint头域: Accept:浏览器端能够承受的媒体类型(MIME); Accept-Charset:浏览器可承受的字符集; Accept-Encoding:浏览器申明本人承受的编码方法,压缩形式,是否反对压缩,反对什么压缩办法 Accept-Language:申明本人承受的语言 clint头域的作用,客户端和服务器端要进行通信,那么客户端就得向服务器申明本人交换的形式(User-Agent)、交换的语言(Accept-Language)、交换的字体(accept-Encoding),曾经客户端承受的内容(accept)等 3、Cache头域: If-Modified-Since:把浏览器端缓存页面的最初批改工夫发送到服务器上,服务器会把这个工夫与工夫文件的批改工夫进行比对 ,工夫始终返回304应用本地缓存数据,工夫不统一返回200和新的文件内容,客户端接到之后会抛弃旧文件再把新文件缓存起来并显示在浏览器中 。 If-None-Match:和ETag一起工作,工作原理是HTTP Response中增加ETag信息,当用户再次申请该资源时,将在HTTP Request中退出If-None-Match信息(ETag的值)。如果服务器验证资源的ETag没有扭转(该资源没有更新),奖返回一个304状态通知客户端应用本地魂村文件。否则将返回200状态和新的资源和Etage,应用这样的机制将进步网站的新性能。 Pragma:作用是避免页面被缓存,在HTTP/1.1版本中,它和Cache-Control:no-cache作用截然不同 Cache-Control:用来指定Response-Request遵循的缓存机制,如下: Cache-Control:Public能够被任何缓存所缓存() Cache-Control:Private内容只缓存到公有缓存中 Cache-Control:no-cache所有内容都不会被缓存 4、Cookie/Login头域 Cookie:最重要的header,奖cookie的值发送给HTTP服务器 5、Transport头域 Connection:连贯的状态,keep-alive当关上一个网页后,客户端和服务器之前传输Http数据到TCP连贯诶不会敞开,如果客户端再次拜访这个服务器的网页,会持续应用这条曾经建设的连贯;close当关上一个申请实现后,客户端和服务器之前用于传输HTTP数据的TCP连贯会敞开,当客户端再次发送申请,须要从新建设TCP连贯 Host(发送申请时,该报头域是必须的):申请报头域而次要用于指定被申请资源的Internet主机和端口号,他通常从HTTP URL中提取进去的,host中端口号省却却示意默认端口后80 6、Entity头域 Content-Length:发送给HTTp服务器数据的长度 Content-Type:互联网媒体类型 7、Miscellaneous头域 Referer:提供Request的上下文信息的服务器,通知服务器我是从哪个连贯过去的。 8、Ajax申请形式 服务器判断request申请是同步还是异步,如果header中有X-Requested-With:XMLHttpRequest示意为异步申请,当X-Requested-With:null是为同步申请 三、接口测试工具接口测试和接口文档生成工具:apipost 接口测试和接口性能测试工具:jmeter

December 14, 2020 · 1 min · jiezi

关于测试开发:pythonflask编写一个简单的登录接口例子

在学习接口测试的时候往往会因为没有实际操作的接口进行测试而懊恼,这里教大家本人编写两个接口用于学习接口测试 1、编写一个登录的接口 2、在pycharm运行 3、应用apipost进行登录接口测试输出url和参数值进行拜访,拜访胜利。 4、在pycharm查看是否失常进行拜访 5、在编写一个须要登录返回的token间接拜访的查问接口 6、运行登录和查问两个接口 7、应用apipost进行登录和查问的接口测试首先进行登录的接口测试获取返回的token应用登录返回的token值进行查问的接口测试 8、应用的工具接口编写工具:python、pycharm、flask框架接口测试工具:apipost 接口测试工具下载地址:https://www.apipost.cn

November 13, 2020 · 1 min · jiezi

关于测试开发:腾讯安全嵌入式安全审计平台入选国家级试点

11月10日,工业和信息化部网络安全管理局颁布了2020年网络安全技术利用试点示范名单,腾讯平安“嵌入式系统安全审计平台”入选。 此次试点名单公示的我的项目次要蕴含“新型信息基础设施平安”、“网络安全公共服务”和“网络安全‘高精尖’技术创新平台”三个重点方向,共有177个我的项目通过评审核验,试点示范期为2年。 腾讯平安此次入选的嵌入式系统安全审计平台是一款专一于嵌入式零碎的全自动平安基线审计的浸透测试辅助平台工具sysAuditor,是腾讯平安科恩实验室将其在车联网平安畛域的技术和服务能力产品化的成绩。腾讯平安科恩实验室相干研究员示意,sysAuditor汇总了实验室过来四五年间在车联网平安上的教训积攒,能够把90%共性平安问题检测进去。 随同着5G网络、大数据中心、工业互联网等新型基础设施建设的放慢推动,新基建日渐为国民经济倒退提供了新动能,但与此同时,很多新技术利用的过程中也面临着全新的平安挑战。上个月,由工信部领导中国汽车技术钻研核心牵头编制的《车联网网络安全白皮书(2020年)》中显示,随着我国智能网联汽车渗透率逐步升高,网络安全事件频发,仅2019年网络安全问题导致的汽车安全事件占比高达57%,让放慢构建车联网平安体系的紧迫性越来越高。 此次试点名单里,除了腾讯平安的嵌入式系统安全审计平台之外,另外有13个我的项目入选“车联网平安”分类,这些我的项目的试点和利用无疑会减速车联网平安最佳实际和解决方案的落地。 作为产业平安领导者,腾讯平安也始终在深耕包含车联网、5G、IoT等在内的前沿技术畛域的平安钻研,也在通过产品和服务将平安能力转化成护航产业互联网的平安生产力,助力各行各业数字化降级倒退。

November 12, 2020 · 1 min · jiezi

关于测试开发:接口测试用例编写和测试关注点

一、为什么要做接口测试在日常开发过程中,有人做前端开发,有人负责后端开发。接口就是连贯前后台,因为前端开发和后端开发的速度可能不一样,例如后端开发好了,然而前端没有开发。那么咱们是不是就不须要测试呢?个别咱们大部分人都是做功能测试,很多是界面的功能测试。如果你了解了接口测试,那么你就能够针对接口进行测试。 二、什么是接口、什么是接口测试接口:次要是子模块或者子系统间交互并相互作用的局部。 这里说的接口是狭义的,客户端与后盾服务间的协定;插件间通信的接口;模块间的接口;再小到一个类提供的办法;都能够了解为接口。 接口测试:是指针对模块或零碎间接口进行的测试。 三、接口测试流程需要探讨,需要评审,场景设计,编写用列,筹备数据,执行测试 四、接口测试用例设计1接口测试的用例设计,次要从输出和接口解决两方面思考: 1)针对输出,可依照参数类型进行设计; 2)针对接口解决,可依照逻辑进行用例设计; 3)针对输入,可依据后果进行剖析设计。 2针对输出设计 对于接口来说,输出就是入参。常见参数类型有: (1)数值型(int,long,float,double等) (2)字符串类型 (3)数组或链表 (4)构造体 五.怎么进行接口测试通过工具模仿客户端向服务端发送申请并承受服务器返回的数据来对接口的性能,逻辑业务,异样,平安进行测试 功能测试:测试这个接口的性能是否实现,并且测试这个接口是否依照接口文档来进行开发的(比如说接口文档规定了一些关键字,而开大的时候把关键字改成了其余的关键字,因为在整个我的项目周期,并不只有一个开发而是有多个,所以可能因为在开发过程中因为关键字不一样导致某些开发的性能异样,还有自动化脚本也会产生异样) 逻辑业务,次要指的是一些逻辑业务依赖关系(比方支付宝提交订单的时候要保障你是在登录的状况下,如果你没有登录而提交胜利了,这就是异样,能够批改申请的cookie来测试) 异样测试:参数异样:关键字参数(利用其余的关键字替换进行测试)、参数为空、参数多少(通过增加参数削减个数),参数谬误。数据异样:关键字数据(填入的数据用其余的数据语言的数据替用)、数据长度、数据为空、数据谬误。 因为咱们我的项目前后端调用次要是基于http协定的接口,所以测试接口时次要是通过工具或代码模仿http申请的发送与接管。工具有很多如:apipost、jmeter、java+httpclient、robotframework+httplibrary等。 –也能够用 接口自动化来实现,就是用代码实现,框架和UI自动化差不多,发送申请用断言来判断。 六、接口测试须要用到的工具接口测试罕用的工具,fiddler抓取申请,apipost模仿客户端通过对fiddler抓取的申请批改并发送到服务端并接管服务器返回的数据及异样来进行验证接口。工具不是固定的,须要依据我的项目来进行抉择。 七、接口测试发现的典型问题接口测试常常遇到的bug和问题,如下: (1)传入参数处理不当,导致程序crash; (2)类型溢出,导致数据读出和写入不统一; (3)因对象权限未进行校验,能够拜访其余用户敏感信息; (4)状态处理不当,导致逻辑呈现错乱; (5)逻辑校验不欠缺,可利用破绽获取非正当利益等。 工具下载链接: ApiPost - 可间接生成文档的API调试、管理工具www.apipost.cn

November 5, 2020 · 1 min · jiezi

关于测试开发:接口测试apipostjmeter和python脚本

一.什么是接口接口就是外部模块对模块,内部系统对其余服务提供的一种可调用或者连贯的能力的规范,就好比usb接口,他是零碎向外接提供的一种用于物理数据传输的一个接口,当然仅仅是一个接口是不能进行传输的,咱们还的对这个接口怎么进行传输进行进行一些设置和定义。开发所谓的接口是模块模块之间的一种连贯,而测试眼中的接口是一种协定(对接口的性能的一种定义) 二、如何进行接口测试1.应用工具进行接口测试 如:apipost、jmeter等工具进行接口测试。 apipost这款接口测试工具,次要针对于接口验证和接口文档生成。apipost这款接口测试工具,是一款很轻便的接口验证工具,能够通过输出申请办法、url、参数间接进行接口申请拜访,验证接口是否开明,还能够查看返回的响应值查看接口开发是否失常。依据这些接口验证信息,间接能够生成在线文档和离线版的word文档。是一款很棒的接口测试和接口文档生成工具,又不像swagger生成的接口文档都是英文的浏览起来也不太不便。apipost还具备协同工作,能够很无效的实现前端的接口联调。 jmeter能够进行接口测试和性能测试,然而对于做单纯的接口测试jmeter操作起来没有apipost应用起来不便。jmeter重点在于压力测试,稳定性测试和负载测试。针对于接口和程序的稳定性设计的一块以软件性能为主接口测试为辅的接口测试工具。 2.脚本进行接口测试 个别应用的python+requests进行接口测试。实现接口的原理和接口测试工具一样。还是通过url、参数和申请办法进行的接口测试。 调用requests和json,因为参数个别是通过json格局传递的。 这就是接口测试次要的两种实现的形式了,工具应用起来比通过脚本进行接口测试简略的多。所有倡议初学接口测试的人应用apipost等测试工具进行接口测试。 工具下载地址: ApiPost - 可间接生成文档的API调试、管理工具www.apipost.cn

November 3, 2020 · 1 min · jiezi

关于测试开发:接口工具对比apipostjmeterpostmanswagger等

一、接口都有哪些类型? 接口个别分为两种:1.程序外部的接口 2.零碎对外的接口 零碎对外的接口:比方你要从别的网站或服务器上获取资源或信息,他人必定不会把 数据库共享给你,他只能给你提供一个他们写好的办法来获取数据,你援用他提供的接口就能应用他写好的办法,从而达到数据共享的目标。 程序外部的接口:办法与办法之间,模块与模块之间的交互,程序外部抛出的接口,比方bbs零碎,有登录模块、发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互,它就会抛出一个接口,供外部零碎进行调用。 接口的分类:1.webservice接口 2.http api接口 webService接口是走soap协定通过http传输,申请报文和返回报文都是xml格局的,咱们在测试的时候都用通过工具能力进行调用,测试。 http api接口是走http协定,通过门路来辨别调用的办法,申请报文都是key-value模式的,返回报文个别都是json串,有get和post等办法,这也是最罕用的两种申请形式。 json是一种通用的数据类型,所有的语言都意识它。(json的实质是字符串,他与其余语言无关,只是能够通过稍稍加工能够转换成其余语言的数据类型,比方能够转换成 Python中的字典,key-value的模式,能够转换成JavaScript中的原生对象,能够转换成 java中的类对象等。) 二.接口--前端、后端和测试 前端对接口进行应用:通过后端人员给的接口文档,来进行Ajax的设计,通过接口向服务发送申请,获取响应的数据,而后通过返回的数据进行下一步的页面跳转和显示。 后端生成接口:通过编写接口,为前端提供与服务器和数据申请交互的通道。编写对应的接口,须要传递的参数,参数类型等等。而后生成接口文档,分享给前端,让其依照接口文档编写对应的Ajax。 测试验证接口:能够通过接口文档,进行接口验证,查看后端开发的接口和前端所写的Ajax是否对应,有没有出错的接口,还可通过接口流程测试,晓得整个零碎之间的接口是否是绝对应的,有没有接口是不对的,或者没有失常运行。 三.前端、后端和测试应用的接口工具 前端:个别应用postman、apipost或者jmeter进行接口验证和查看响应值 后端:多用swagger、apipost、postman等接口文档生成工具和测试工具 测试:jmeter、apipost和postman等能够对接口进行验证测试。 四.jmeter、postman、apipost、swagger工具介绍 jmeter能够进行接口测试和性能测试,然而对于做单纯的接口测试jmeter操作起来没有postman、apipost应用起来不便。jmeter重点在于压力测试,稳定性测试和负载测试。针对于接口和程序的稳定性设计的一块以软件性能为主接口测试为辅的接口测试工具。 postman是Google开发的一款接口测试的插件,也有客户端。国内禁用Google之后,postman的插件就不好下载和应用了。postman这款接口测试工具,是一款很轻便的接口验证工具,能够通过输出申请办法、url、参数间接进行接口申请拜访,验证接口是否开明,还能够查看返回的响应值查看接口开发是否失常。不过因为是Google开发的所以只反对英文版。对于英文不好的人应用起来特地好受。 apipost这款接口测试工具,次要针对于接口验证和接口文档生成。apipost这款接口测试工具,是一款很轻便的接口验证工具,能够通过输出申请办法、url、参数间接进行接口申请拜访,验证接口是否开明,还能够查看返回的响应值查看接口开发是否失常。依据这些接口验证信息,间接能够生成在线文档和离线版的word文档。是一款很棒的接口测试和接口文档生成工具,又不像swagger生成的接口文档都是英文的浏览起来也不太不便。apipost还具备协同工作,能够很无效的实现前端的接口联调。 swagger是一款通过针对与后端开发人员的一款接口文档生成工具。次要通过在代码中的正文生成接口文档的工具,不过生成的接口文档是英文的。 下载地址:ApiPost - 可间接生成文档的API调试、管理工具www.apipost.cn Apache JMeter - Apache JMeter™jmeter.apache.org API Documentation & Design Tools for Teams | Swaggerswagger.io

October 30, 2020 · 1 min · jiezi

关于测试开发:一文搞定-Docker-容器技术与常用命令

Docker 简介Docker 是一个开源的利用容器引擎,基于 Go 语言开发,Docker 能够让开发者打包他们的利用以及依赖包到一个轻量级、可移植的容器中,而后公布到任何风行的零碎。 Docker 是世界领先的软件容器平台,Docker 官网的口号是”调试你的利用,而不是调试环境“。在进行多人合作开发时,开发者能够应用 Docker 来打消所谓“我这里运行是好的”(works on my machine)问题,运维人员应用 Docker 来并行的运行和治理利用来取得更优计算密度,基于各自独立的容器,不会因为环境起因导致利用运行谬误。 如下图所示,在工作当中,如果咱们面对这样多的服务、多个服务器,以及多种环境,咱们应该如何解决呢?如果还持续用传统的形式打包部署,咱们会节约多少工夫? 所以在 Docker 横空出世之前,利用打包始终是大部分研发团队的痛点,在 Docker 呈现后,它以更高效的利用系统资源、更高效的利用系统资源、统一的运行环境、继续交付和部署、更轻松的迁徙、更轻松的保护和拓展,6大长处迅速火了起来。 Docker 的三个外围概念镜像(Image)是一个蕴含有文件系统的面向 Docker 引擎的只读模板。任何利用程序运行都须要环境,而镜像就是用来提供这种运行环境的。例如一个 Ubuntu 镜像就是一个蕴含 Ubuntu 操作系统环境的模板。 容器(Container)相似于一个轻量级的沙盒,能够将其看作一个极简的 Linux 零碎环境(包含 root 权限、过程空间、用户空间和网络空间等),以及运行在其中的应用程序。Docker 引擎利用容器来运行、隔离各个利用。容器是镜像创立的利用实例,能够创立、启动、进行、删除容器,各个容器之间是是互相隔离的,互不影响。 留神:镜像自身是只读的,容器从镜像启动时,Docker 在镜像的下层创立一个可写层,镜像自身不变。 仓库(Repository)镜像仓库,是 Docker 用来集中寄存镜像文件的中央。 Docker 装置Docker 是开源的商业产品,有两种版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。企业版蕴含了一些免费服务,个别用不到。咱们上面将会演示 Docker CE 版本的应用办法。 Docker 反对很多操作系统平台,有大家罕用的 Microsoft Windows 系列操作系统(Docker 不反对 Windows 10 家庭版零碎),Linux 发行版和 MacOS 零碎。 装置Windows 零碎装置办法Windows 上有两种装置 Docker 形式: ...

August 25, 2020 · 2 min · jiezi

关于测试开发:测试大咖漫谈测试人职业发展

【本文作者介绍】思寒,资深测试架构师,霍格沃兹测试学院校长,开源自动化测试工具 AppCrawler 作者,有 10 余年软件测试开发教训,曾任职于阿里巴巴,百度、雪球等公司。 有不少测试同学反馈,2020 年好难啊,在各种压力下,陷入了对本人和将来测试职业倒退的迷茫。明天就一起来重温下经典,重塑信念,破解迷茫。通过本文分享下对测试工程师职业倒退的认识,话题较大,不敢轻易乱写,抛砖引玉,仅供大家参考。1. 测试行业倒退背景微软引领的大测试时代中国最早的对 IT 工程的启蒙和测试定位的摸索大多来自于微软。当年的大背景是微软成心放任 Windows 的盗版,并踊跃的输入他本身的 IT 生态技术栈到中国。中国从政府到民间简直全副应用了 Windows。中国有大量的微软认证的 VP 等各种专家。 微软和他的从属生态带给中国测试行业的影响,简略总结下: 强调工程的严谨性。CMMI 一统天下。有数中国公司为了通过这个认证费尽脑汁。大部分公司通过它也不是为了本人的标准,而是为了能拿到政府或者国外机构的外包业务。测试和研发的比例。因为都是客户端产品。如果交付进来呈现品质问题是很难解决的。所以测试被放在一个十分重要的地位上。测试与研发比一度是 1:2外包公司倒退迅猛。短短的几年。中软,东软,软通能源,博彦等公司迅猛的倒退起来。 测试技术的启蒙和倒退。次要是自动化为主。在十年前的年代,听一些前辈说,有公司做性能测试,就是有人用哨子吹下,而后一屋子的人就开始一起点。所以当 QTP 和 LoadRunner 呈现后,就迅速霸占了市场。互联网时代的测试倒退当互联网世界开始暴发,测试行业的次要变动是: CMMI 逐步被互联网公司疏忽。国内崛起的公司有本人的业务,他们不屑于不实用的认证,开启了本人独特的横蛮倒退的节奏。这也是之前在外企工作的白领有自卑感的一个起因。测试技术大倒退。不再是简略的自动化测试,技术开始更加细化。比方单元测试,代码动动态测试,接口测试,继续集成,各种端的自动化测试。大家也不再科学 UI 自动化,而分层自动化,继续集成,测试即服务等理念开始风行。测试工程师技术型转变。以前的测试工程师就是点点点,不会要求技术的。但当初 BAT 等一线公司曾经全副推广技术口试了。能够说,不懂开发根底的测试人曾经难以倒退了。点点点测试工程师曾经进化到只能用于用户端的性能校验工作了。测试研发比:从 1:2 降落到了 1:3、1:5。挪动互联网+守业浪潮时代的测试倒退挪动互联网暴发,IT 研发技术栈和云计算服务也倒退迅猛,这让小公司的生产力有飞跃性变动,也催生了一场席卷寰球的守业浪潮。这股浪潮起源于硅谷,并迅速通过"Copy to China"模式烧到了中国。另外一个是中国大环境的变动,导致了外资企业生存艰难,很多优良的企业都从中国撤退。 这期间的测试行业产生了如下的变动: 服务于国内企业的测试工程师开始增多。外包测试工程师,外企工作白领测试工程师都被外企撤退影响到了,开始逐步转到国内公司。外企工作的自卑感逐步丢失,国内的工程师开始崛起。麻利理念流行。SCRUM 和 XP 理念被迅速的遍及。Scrum 投合了产品治理的需要,XP 投合了工程化倒退的需要。各自倒退都很迅猛,而后逐步衍生了更深刻的 CI CD 和 devops 等模式。测试研发比。降落到 1:8 甚至更低。其实 BAT 都向往 google 的 1:10。只是国内目前做不到。大质量部模式被打散。为了进步运作效率,QA 或者测试工程师团队被逐步分拆到各个具体业务部门。大质量部模式隐没意味着测试工程师的倒退开始遭逢天花板。很多人还没能领会到这个模式带来的微小影响。测试技术新倒退。测试平台失去了很大的倒退。研发工程师,技术型测试工程师也开始逐步施展价值。比方新型的全链路压测,全链路追,测试监控,各种接口测试和 mock 平台,各种云测和专项测试平台。独立的测试服务公司也开始层出不穷。大数据和智能时代人类曾经进入 DT 时代。大数据,机器学习,深度学习,图形渲染等技术栈也曾经成熟了。随之而来会造成新的生产力并落地到测试行业,这个阶段大家刚开始感触到。我临时不做评论。 2.测试行业倒退总结之所以列举过来的行业变动,其实是为了通知大家,不要认为目前的模式就是行业的长期现状。目前不同企业依然是处于不同的理念和不同的历史阶段中。没有相对的对错,只有适宜与否。 这些变动都是围绕着几条外围的主线倒退的: 业务倒退业务倒退带来了对品质和速度的谋求。这是整个行业倒退的主线。 ...

August 24, 2020 · 2 min · jiezi

关于测试开发:微信小程序自动化测试最佳实践附-Python-源码

本文为霍格沃兹测试学院测试大咖公开课《微信小程序自动化测试》图文整顿精华版。随着微信小程序的性能和生态日益完善,很多公司的产品业务状态逐步从 App 延升到微信小程序、微信公众号等。小程序我的项目页面越来越多,业务逻辑也越来越简单,全手工测试已无奈满足快速增长的业务需要。 然而,因为小程序自身的一些个性,导致业界目前不足成熟欠缺的解决方案,总会呈现各种问题(包含腾讯微信官网提供的自动化工具)。如何做好小程序的自动化测试就成为测试同学当下广泛面临的一个痛点难题。 本节课就次要分享下微信小程序自动化测试的一些最佳实际心得,包含微信小程序的根本测试技术和操作方法,以及如何利用 Appium 的 WebView 测试技术 + adb proxy 实现微信小程序的自动化测试(可能是目前最实用的小程序自动化测试技术),并附上 Python 版源码。 小程序运行环境 平台差别:只管各运行环境是十分相似的,然而还是有些许区别: JavaScript 语法和 API 反对不统一:语法上开发者能够通过开启 ES6 转 ES5 的性能来躲避(详情);此外,小程序根底库内置了必要的Polyfill,来补救API的差别。 WXSS 渲染体现不统一:只管能够通过开启款式补全来躲避大部分的问题,还是倡议开发者须要在 iOS 和 Android 上别离查看小程序的实在体现。 微信小程序技术架构微信小程序技术架构如下图所示: 应用 Chrome 调试小程序用 Chrome 浏览器提供的 inspect 剖析工具,在浏览器中输出如下地址:chrome://inspect/#devices应用 Chrome 浏览器查看手机上关上的 WebView 过程与根本信息: 能够应用 chrome inspect 剖析微信小程序的控件构造与布局: 应用 console 执行本人的 JavaScript 代码: 小程序的性能测试这里附一张小程序性能测试图: 微信小程序的自动化测试微信小程序自动化测试的关键步骤Native 原生自动化形式。应用 Appium 即可实现,毛病就是控件定位不够精确,无奈深刻小程序外部;Webview 自动化形式:能够获取更多小程序外部品质数据。设置 chromedriver 正确版本设置 chrome option 传递给 chromedriver应用 adb proxy 解决 fix chromedriver 的 bug为什么依然有很多人搞不定? ...

August 18, 2020 · 2 min · jiezi

关于测试开发:测试面试题集锦五-自动化测试与性能测试篇附答案

本文为霍格沃兹测试学院学员学习笔记,进阶学习文末加群。本系列文章总结演绎了一些软件测试工程师常见的面试题,次要来源于集体面试遇到的、网络收集(欠缺)、工作日常探讨等,分为以下十个局部,供大家参考。如有谬误的中央,欢送斧正。有更多的面试题或面试中遇到的坑,也欢送补充分享。心愿大家都能找到称心的工作,共勉之!~ 软件测试工程师面试题测试常见问题与流程篇测试工具篇计算机网络常识与数据库篇Linux 与 Python 编程技能篇自动化测试与性能测试篇软素质篇(10 大灵魂拷问)与反诘面试官篇自动化测试相干蕴含 Selenium、Appium 和接口测试。1. 自动化代码中,用到了哪些设计模式?单例模式工厂模式PO模式数据驱动模式2. 什么是断言?查看一个条件,如果它为真,就不做任何事,用例通过。如果它为假,则会抛出 AssertError 并且蕴含错误信息。3. UI 自动化测试中,如何做集群?Selenium Grid,分布式执行用例Appium 应用 STF 治理多设施Docker+K8S 治理集群4. 怎么对含有验证码的性能进行自动化测试?万能验证码测试环境屏蔽验证其余操作不举荐5. 如何优化和进步 Selenium 脚本的执行速度?尽量应用 by_css_selector() 办法by_css_selector() 办法的执行速度比 by_id() 办法的更快,因为源码中 by_id() 办法会被主动转成 by_css_selector() 办法解决;应用期待时,尽量应用显示期待,少用 sleep(),尽量不必隐式期待;尽量减少不必要的操作:能够间接拜访页面的,不要通过点击操作拜访;并发执行测试用例:同时执行多条测试用例,升高用例间的耦合;有些页面加载工夫长,能够中断加载;6. 接口测试能发现哪些问题?能够发现很多在页面上操作发现不了的 bug;查看零碎的异样解决能力;查看零碎的安全性、稳定性;前端轻易变,接口测好了,后端不必变;能够测试并发状况,一个账号,同时(大于 2 个申请)对最初一个商品下单,或不同账号,对最初一个商品下单;能够批改申请参数,冲破前端页面输出限度(如金额);7. Selenium 中暗藏元素如何定位?如果单纯的定位的话,暗藏元素和一般不暗藏元素定位没啥区别,用失常定位办法就行了(这个很多面试官也搞不清楚);元素的属性暗藏和显示,次要是 type="hidden" 和 style="display: none;" 属性来管制的,接下来在元素属性外面让它暗藏,暗藏元素能够失常定位到,只是不能操作(定位元素和操作元素是两码事,很多初学者傻傻分不清楚),操作元素是 click,clear,send_keys 这些办法;JS 操作暗藏元素;8. 如何判断一个页面上元素是否存在?办法一:用 try…except…办法二:用 elements 定义一组元素办法,判断元素是否存在,存在返回 True,不存返回 False办法三:联合 WebDriverWait 和 expected_conditions 判断(举荐)9. 如何进步脚本的稳定性?不要右键复制 xpath(十万八千里那种门路,必定不稳固),本人写相对路径,多用 id 为节点查找;定位没问题,第二个影响因素那就是期待了,sleep 期待尽量少用(影响执行工夫);定位元素办法从新封装,联合 WebDriverWait 和 expected_conditions 判断元素办法,本人封装一套定位元素办法;10. 如何定位动静元素?动静元素有 2 种状况,一个是属性动静,比方 id 是动静的,定位时候,那就不要用 id 定位就是了;还有一种状况动静的,那就是这个元素一会在页面上方,一会在下方,飘忽不定的动静元素,定位办法也是一样,按 f12,依据元素属性定位(元素的 tag、name的步调属性是不会变的,动的只是 class 属性和 styles 属性);11. 如何通过子元素定位父元素应用element.parent办法12. 平时遇到过哪些问题? ?如何解决的能够把平时遇到的元素定位的一些坑说下,而后说下为什么没定位到,比方动静 id、有 iframe、没加期待等因素;13. 一个元素明明定位到了,点击有效(也没报错),如果解决?应用 JS 点击,Selenium 有时候点击元素是会生效;14. 测试的数据你放在哪?对于账号密码,这种管全局的参数,能够用命令行参数,独自抽出来,写的配置文件里(如 ini);对于一些一次性耗费的数据,比方注册,每次注册不一样的数,能够用随机函数生成;对于一个接口有多组测试的参数,能够参数化,数据放 YAML,Text,JSON,Excel 都能够;对于能够重复应用的数据,比方订单的各种状态须要造数据的状况,能够放到数据库,每次数据初始化,用完后再清理;对于邮箱配置的一些参数,能够用 ini 配置文件;对于全副是独立的接口我的项目,能够用数据驱动形式,用 excel/csv 治理测试的接口数据;对于大量的静态数据,比方一个接口的测试数据,也就 2-3 组,能够写到 py脚本的结尾,十年八年都不会变更的;15. 什么是数据驱动,如何参数化?参数化的思维是代码用例写好了后,不须要改代码,只需保护测试数据就能够了,并且依据不同的测试数据生成多个用例;16. 其余接口都须要登录接口的信息,怎么去让这个登录的接口只在其余接口调用一次?应用单例模式应用自定义缓存机制应用测试框架中的 setup 机制pytest 中 fixture 机制17. 接口产生的垃圾数据如何清理?造数据和数据清理,需用 python 连数据库了,做增删改查的操作测试用例前置操作,setUp 做数据筹备后置操作,tearDown 做数据清理18. 怎么用接口案例去笼罩业务逻辑?思考不同的业务场景,一个接口走过的流程是什么样的,流程的逻辑是什么样的,什么样的参数会有什么样的后果,多场景笼罩;性能篇1. 性能测试指标包含哪些最大并发用户数,HPS(点击率)、事务响应工夫、每秒事务数、每秒点击量、吞吐量、CPU 使用率、物理内存应用、网络流量应用等。前端需次要关注的点是: ...

August 16, 2020 · 1 min · jiezi

关于测试开发:测试面试题集锦四-Linux-与-Python-编程篇附答案

本文为霍格沃兹测试学院学员学习笔记。本系列文章总结演绎了一些软件测试工程师常见的面试题,次要来源于集体面试遇到的、网络收集(欠缺)、工作日常探讨等,分为以下十个局部,供大家参考。如有谬误的中央,欢送斧正。有更多的面试题或面试中遇到的坑,也欢送补充分享。心愿大家都能找到称心的工作,共勉之!~ 软件测试工程师面试题测试常见问题与流程篇测试工具篇计算机网络常识与数据库篇Linux 与 Python 编程技能篇自动化测试(Selenium、Appium 和接口测试)与性能测试篇软素质篇(10 大灵魂拷问)与反诘面试官篇Linux 技能篇1. 工作中罕用的 Linux 命令有哪些?awk、sed、vim、iotop、dstat、cp、top、ifconfig、pwd、cd、ll、ls、cat、tail、grep、mv、rm、mkdir、df、du2.什么命令能够帮忙 Linux 执行 Windows 上传的脚本?扭转编码格局vim test.sh:set ff?// 显示dos的话:set ff=unix:wq3简述 Linux 三剑客grep 命令 依据用户指定的模式 pattern 对指标文本进行过滤,显示被模式匹配到的行;grep [options] pattern [file]罕用参数: -v 显示不被pattern匹配到的行-i 疏忽字符的大小写-n 显示匹配的行号-c 统计匹配的行数-o 仅显示匹配到的字符串-E 应用ERE,相当于egrep(能够辨认更多的正则表达式规定)sed 命令 流编辑器,用来解决一行数据。将一行数据存储在模式空间中->用sed命令解决->送入屏幕->清空空间。罕用参数: -h 显示帮忙-n 仅显示script解决后的后果-e 指定的脚本来解决输出的文本文件-f 以指定的脚本文件来解决罕用动作: a: 新增 sed -e '4 a newline'c: 取代 sed -e '2,5c No 2-5 number'd: 删除 sed -e '2,5d'i: 插入 sed -ed '2i newline'p: 打印 sed -n '/root/p's: 取代 sed -e 's/old/new/g'g: 代表全局awk 命令 ...

August 10, 2020 · 2 min · jiezi

关于测试开发:测试面试题集锦四-Linux-与-Python-编程篇附答案

本文为霍格沃兹测试学院学员学习笔记。本系列文章总结演绎了一些软件测试工程师常见的面试题,次要来源于集体面试遇到的、网络收集(欠缺)、工作日常探讨等,分为以下十个局部,供大家参考。如有谬误的中央,欢送斧正。有更多的面试题或面试中遇到的坑,也欢送补充分享。心愿大家都能找到称心的工作,共勉之!~ 软件测试工程师面试题测试常见问题与流程篇测试工具篇计算机网络常识与数据库篇Linux 与 Python 编程技能篇自动化测试(Selenium、Appium 和接口测试)与性能测试篇软素质篇(10 大灵魂拷问)与反诘面试官篇Linux 技能篇1. 工作中罕用的 Linux 命令有哪些?awk、sed、vim、iotop、dstat、cp、top、ifconfig、pwd、cd、ll、ls、cat、tail、grep、mv、rm、mkdir、df、du2.什么命令能够帮忙 Linux 执行 Windows 上传的脚本?扭转编码格局vim test.sh:set ff?// 显示dos的话:set ff=unix:wq3简述 Linux 三剑客grep 命令 依据用户指定的模式 pattern 对指标文本进行过滤,显示被模式匹配到的行;grep [options] pattern [file]罕用参数: -v 显示不被pattern匹配到的行-i 疏忽字符的大小写-n 显示匹配的行号-c 统计匹配的行数-o 仅显示匹配到的字符串-E 应用ERE,相当于egrep(能够辨认更多的正则表达式规定)sed 命令 流编辑器,用来解决一行数据。将一行数据存储在模式空间中->用sed命令解决->送入屏幕->清空空间。罕用参数: -h 显示帮忙-n 仅显示script解决后的后果-e 指定的脚本来解决输出的文本文件-f 以指定的脚本文件来解决罕用动作: a: 新增 sed -e '4 a newline'c: 取代 sed -e '2,5c No 2-5 number'd: 删除 sed -e '2,5d'i: 插入 sed -ed '2i newline'p: 打印 sed -n '/root/p's: 取代 sed -e 's/old/new/g'g: 代表全局awk 命令 ...

August 10, 2020 · 2 min · jiezi

手动测试存在的重要原因

在移动应用测试方面,手动测试是不可避免的。在这个快速数字化转型的时代,移动应用程序已成为最有利的商业模式。不断变化的情景也影响了测试空间。在可能的情况下应用自动化,因为它在迭代时节省了时间和金钱。但随着移动应用开发技术的变化,对手动测试的需求仍在增长。让我们来看看手动测试的重要性。 什么是手动测试?手动测试是指分配测试人员在发布应用程序之前测试应用程序以查找错误。有不同类型的手动测试,如性能,网络,可扩展性,单元,集成等。这取决于应用程序的类型,以选择需要进行哪些测试。大多数功能测试可以手动完成。 手动检查的必要性测试人员可以在完成代码或执行测试时检测问题。自动脚本不会偏离其编程执行的任务,也不会解决视觉问题。大多数功能测试应由测试人员手动执行,以避免错误。 探索性测试它以随机方式完成,以检查即使在自动化测试之后仍可能存在的问题。这可以手动完成,因为没有预定义的脚本。测试人员将根据用户的角度决定哪种功能需要以何种方式进行测试。测试者批判自由式思维和观察对于进行探索性测试至关重要。 描述性报告手动测试有助于我们在上下文和概念中详细了解问题。自动化无法提供这种类型的详细见解,通过这些见解我们可以轻松找到根本原因,因为它们是客观的。手动测试人员是主观的,在报告中,他们还详细说明了优化过程的方法。 在某些情况下,自动化是不可行的在某些情况下,需要进行人工干预,例如在测试需要点按和滑动手势的应用时。做这样的事情会是不准确和昂贵的。自动化这种情况需要更多时间,手动测试将在更短的时间内完成。 初始投资和时间与手动测试相比,自动化测试用例和编写脚本需要更多时间。测试人员可以直接开始测试应用程序而无需创建任何测试用例。这就是自动化只能用于重复测试的原因。手动测试的未来之路虽然自动化随着人工智能和机器学习的发展而不断发展,但人工测试的需求仍然存在。总会有人类测试人员需要手动进行测试的场景。在自动化中,算法将根据测试脚本工作,并且不会想象想象找到错误的新方法。至少不是在不久的将来,但也许当AI变得过于聪明而不具备创造力时。 技术类文章精选java一行代码打印心形Linux性能监控软件netdata中文汉化版接口测试代码覆盖率(jacoco)方案分享性能测试框架如何在Linux命令行界面愉快进行性能测试图解HTTP脑图如何测试概率型业务接口httpclient处理多用户同时在线将swagger文档自动变成测试代码五行代码构建静态博客httpclient如何处理302重定向基于java的直线型接口测试框架初探Tcloud 云测平台--集大成者如何测试概率型业务接口python plotly处理接口性能测试数据方法封装单点登录性能测试方案非技术文章精选为什么选择软件测试作为职业道路?成为杰出Java开发人员的10个步骤写给所有人的编程思维自动化测试的障碍自动化测试的问题所在测试之《代码不朽》脑图成为优秀自动化测试工程师的7个步骤优秀软件开发人员的态度如何正确执行功能API测试未来10年软件测试的新趋势-上未来10年软件测试的新趋势-上自动化测试解决了什么问题17种软件测试人员常用的高效技能-上17种软件测试人员常用的高效技能-下大咖风采Tcloud 云测平台--集大成者Android App 测试工具及知识大集合4399AT UI自动化CI与CDAndroid App常规测试内容点击查看公众号地图

October 16, 2019 · 1 min · jiezi

一个时间计数器timewatch辅助性能测试

在做性能测试的时候,经常需要去记录一些方法的执行时间,这期间用到了stopwatch的类,但是有些功能自定义起来不太好,比如自定义标记的名称一类,而且split方法也有点不顺手,所以产生了自己写一个简单的时间计数器。 语言使用groovy写的,java框架可以使用。 v1.0已经完成,目前只有一些简单的功能,下一步打算弄一下多线程使用兼容问题。 package com.fun.utilsimport com.fun.frame.SourceCodeimport org.slf4j.LoggerFactoryimport java.text.DecimalFormat/** * 时间观察者类,用于简单记录执行时间 */class TimeWatch extends SourceCode { static def logger = LoggerFactory.getLogger(TimeWatch.class)/** * 默认的名称 */ def name = "default"/** * 纳秒 */ def startTime /** * 标记集合 */ def marks = new HashMap<String, Mark>() /** * 毫秒 */ def startTimeMillis/** * 无参创建方法,默认名称 * @return */ public static TimeWatch create() { final TimeWatch timeWatch = new TimeWatch() timeWatch.start() return timeWatch }/** * 创建方法 * @param name * @return */ public static TimeWatch create(def name) { final TimeWatch timeWatch = new TimeWatch() timeWatch.start() return timeWatch } private TimeWatch() { }/** * 开始记录 * @return */ def start() { reset() }/** * 重置 */ def reset() { startTime = getNanoMark() startTimeMillis = Time.getTimeStamp() }/** * 标记 * @param name * @return */ def mark(def name) { marks.put(name, new Mark(name)) }/** * 标记 * @return */ def mark() { marks.put(name, new Mark(name)) }/** * 获取标记时间 * @return */ def getMarkTime() { if (marks.containsKey(name)) { def diff = Time.getTimeStamp() - marks.get(name).getStartTimeMillis() logger.info(LINE + "观察者:{}的标记:{}记录时间:{} ms", name, name, diff) } else { logger.warn("没有默认标记!") } }/** * 获取标记时间 * @return */ def getMarkNanoTime() { if (marks.containsKey(name)) { def diff = getNanoMark() - marks.get(name).getStartTime() logger.info(LINE + "观察者:{}的标记:{}记录时间:{} ns", name, name, diff) } else { logger.warn("没有默认标记!") } }/** * 获取某个标记的记录时间 * @param name * @return */ def getMarkTime(String name) { if (marks.containsKey(name)) { def diff = Time.getTimeStamp() - marks.get(name).getStartTimeMillis() logger.info(LINE + "观察者:{}的标记:{}记录时间:{} ms", name, name, diff) } else { logger.warn("没有{}标记!", name) } }/** * 获取某个标记的记录时间 * @param name * @return */ def getMarkNanoTime(String name) { if (marks.containsKey(name)) { def diff = getNanoMark() - marks.get(name).getStartTime() logger.info(LINE + "观察者:{}的标记:{}记录时间:{} ns", name, name, diff) } else { logger.warn("没有{}标记!", name) } }/** * 获取记录时间 * @return */ def getTime() { def diff = Time.getTimeStamp() - startTimeMillis logger.info(LINE + "观察者:{},记录时间:{} ms", getName(), diff) return diff }/** * 获取记录时间纳秒 * @return */ def getNanoTime() { long diff = getNanoMark() - startTime DecimalFormat format = new DecimalFormat("#,###") logger.info(LINE + "观察者:{},记录时间:{} ns", getName(), format.format(diff)) return diff } @Override public String toString() { return "时间观察者:" + this.name } @Override public TimeWatch clone() { def watch = new TimeWatch() watch.name = getName() + "_c" watch.startTime = getStartTime() watch.startTimeMillis = getStartTimeMillis() return watch }/** * 标记类 */ class Mark { public Mark(def name) { this.name = name reset() } def name def startTime def startTimeMillis def lastTime def l def reset() { this.startTime = getNanoMark() this.startTimeMillis = Time.getTimeStamp() } }}groovy是一种基于JVM的动态语言,我觉得最大的优势有两点,第一:于java兼容性非常好,大部分时候吧groovy的文件后缀改成java直接可以用,反之亦然。java的绝大部分库,groovy都是可以直接拿来就用的。这还带来了另外一个有点,学习成本低,非常低,直接上手没问题,可以慢慢学习groovy不同于Java的语法;第二:编译器支持变得更好,现在用的intellij的ide,总体来说已经比较好的支持groovy语言了,写起代码来也是比较顺滑了,各种基于groovy的框架工具也比较溜,特别是Gradle构建工具,比Maven爽很多。----此段文字为了撑字数强加的,与内容无关。欢迎有兴趣的童鞋一起交流 ...

July 14, 2019 · 2 min · jiezi

操作的原子性与线程安全

本案例来源于java zone社区,由于源代码里面存在一些自己开发的注解,我暂时没找到相关的文档,所以我做了一些修改。用的都是java SDK的API。关于概念: 原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。线程安全:就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。线程不安全:就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据进入正题,如果可以从多个线程调用所有方法而没有外部同步,则类是线程安全的。为了实现这一点,线程安全方法必须是原子的,例如,其他线程只能看到方法之前或之后调用之间的状态。以下示例说明了为什么线程安全方法必须是原子的: public class TR extends FanLibrary { private volatile int i = 0; public void ss() { sleep(100);//为了更容易出现效果 i++; } @Before public void be() { output("before"); } @Test public void sdfa() throws InterruptedException { Thread first = new Thread(() -> { ss(); }); Thread second = new Thread(() -> { ss(); }); first.start(); second.start(); first.join(); second.join(); output(i); } @After public void ds() { output("after"); }}控制台输出,以下内容可能会出现,代码中sleep(100)的原因: ...

July 13, 2019 · 1 min · jiezi

报表网红是Tableau提测网红是MadPecker

近期Tableau着实刷屏了,身边的朋友纷纷“墙裂”推荐,其强大的数据处理及可视化分析号称比传统excel等现有解决方案提高10-100倍,堪称是【报表网红】。同样的,我们MadPecker在提测领域也可以帮助测试人员、开发人员提升10-100倍的工作效率,【提测网红】实至名归。 对于大多数团队而言,提测应该都是比较”糟心“的事情,测试用例的录制,测试计划的编排,测试过程中产生的bug的跟踪和修复,都将直接影响项目的上线质量。今天小啄给大家分享一下如何让每个团队的测试变得更有效率。 高效使用测试框架 测试人员在接到一份新项目的测试任务的时候,肯定是需要先理清楚测试思路的。为此,我们搭建了一套完整的测试框架,从用例录制到BUG提交形成规范的测试机制,即使是测试新手也几乎不用学习成本就可以完成测试任务。关于一些用户提出的在测试过程中遇到的问题: 1.测试用例写不全,总是感觉还有缺漏 2.测试用例深度不够,只能发现一些表面的问题,扎根深处的问题没法发现 3.测试过程中总是这点点那点点,没有根据场景进行项目测试,也不知道实际用户的使用习惯 针对类似的问题,我们根据长期积累下来的经验统一了测试用例的编写规范,目的在于提高测试用例的可读性、可执行性和合理性。因为编写测试用例相当于整个测试流程的地基,没有把地基打好,测试结果就不言而喻了。所以测试人员在编写测试用例时,需要以最小功能模块来划分用例,这样才能保证用例覆盖足够广,也使得后续问题的出现大大减小。那么如何高效地使用测试框架呢?我们建议先测主线再测支线。主线指的是真实用户完成一套正常流程所走的路线,支线指的是围绕主线的功能模块及其功能细节,这两条路线在系统中都可以使用同一套框架。 为保证测试流程更加接近真实用户的使用情况,我们构建了可复用的测试用例和测试场景,方便大家使用场景法进行测试。场景法是通过运用场景对系统的功能点或业务流程的描述来提高测试效果的。可复用的用例、场景也帮助测试人员大大地提高了工作效率。 同样的,测试执行也是测试框架中的一部分,测试执行将所有测试用例量化,然后整合起来指定给执行的负责人,并保证测试计划的有效性,确立每个测试阶段测试完成以及测试成功的标准和要实现的目标。通过执行中的通过率和完成度两项指标,测试人员或者项目的负责人都可以很清楚地了解到本轮测试的完成情况并对项目进行风险评估。在测试过程中,我们设定了BUG反馈机制,执行中产生的BUG直接反馈给开发人员,使得整个测试流程形成闭环。 打造测试界的网红产品 在MadPecker测试管理功能上线的短短几个月内,大量团队争相涌进,并将MadPecker作为团队的首要测试管理工具,使得我们的产品在业内积攒了一定的知名度。在此,小啄代表团队所有人感谢大家的信任。同时,我们也欢迎越来越多的团队加入进来,让每个团队的提测变得更有效率!

June 13, 2019 · 1 min · jiezi

腾讯WeTestTesterHome深圳线下沙龙

作者:WeTest小编商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。原文链接:https://wetest.qq.com/lab/view/456.html 腾讯官方的一站式品质开放平台「腾讯WeTest」携手知名测试社区「TesterHome」以及3家金融相关企业为我们带来的金融专场。 本次活动内容主要以金融公司的测试落地和测试技术为主,我们希望你是一个:1.热爱测试技术,愿意在测试行业深耕。2.有过1年以上有效测试经验或者开发经验,希望能在现场有收获。3.来自金融行业,从事测试,或者开发或者技术管理工作。4.当然,也欢迎行业中的大牛来现场沟通交流。 本次活动为期半天,希望各位参会的人员,与我们一起学习广东的各个金融公司是怎么来做测试。在交流中成长,为自己和自己的公司带来可以足够帮助落地的技术和思维。 沙龙时间2019年5月18日 14:00 - 18:00 活动流程时间内容13:30-14:00签到+TesterHome移动社区简介 14:00-14:30《接口自动化实践》——道长14:30-14:40Q&A14:40-15:10《grpc接口测试相关分享 》——麦迪15:10-15:20Q&A15:20-15:50茶歇互动15:50-16:20《从APP到小程序,腾讯WeTest金融产品测试解决方案分享》——刘悦琦16:20-16:30Q&A16:30-17:00《随手记接口自动化实践之路》——刘云海17:00-17:10Q&A17:10-18:00圆桌互动沙龙地点 广东深圳市南山区深南大道10000号腾讯大厦北广场二楼多功能厅 交通引导: 公交: 深大北门(1):经过路线338,m200,m435,高30等。 研祥科技大厦:74,37。 地铁: 地铁1号线罗宝线深大站A3出口步行约1000米 沙龙报名地址:https://www.bagevent.com/event/2646011 备注沙龙收取的费用,将用于线下沙龙的茶点等报名的童鞋加入TesterHome广东,QQ群号:236877480(QQ群要求必须填写论坛ID才可以加入)微信群因为限制,超过100人需要邀请加入。所以请添加下面TesterHome深圳负责人的微信号(kasi2014to2084),添加好友之后发送信息“希望加入深圳TesterHome微信群”之后群主会发送邀请链接本次沙龙是和WeTest合办,参会人信息共享

May 12, 2019 · 1 min · jiezi

腾讯测试中台实践与交流活动圆满结束

作者:WeTest小编商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。原文链接:https://wetest.qq.com/lab/view/457.html 2019年5月5日,腾讯WeTest作为测试敏捷化标准协会成员之一,主办的测试中台交流和参观活动,在腾讯上海分公司总部园圆满举行。来自浦发卡中心、太平洋保险、东方航空、众安科技、浦发银行、国泰君安、翰纬科技(排名不分先后)等单位的近30位嘉宾参与了本次活动。本次参观交流活动合影 本次交流参观活动,在腾讯WeTest产品组组长Paro的带领下,WeTest的产品线经理就建设测试中台的历史契机和组织发展阶段、WeTest测试中台介绍、腾讯DevOps的测试实践方案、兼容性测试及AI在测试中的应用、服务器性能全链路和接口测试和客户端性能解决方案六大主题与来宾进行分享和技术交流。 活动开场,WeTest产品中心总监方亮致辞,WeTest作为腾讯的一站式质量开放平台,目前已服务于腾讯多个事业群,数百个项目。并且作为测试中台将能力赋予DevOps体系,共建研发生态,助力企业研发效能的提升。 互联网企业和金融企业一样都有着最广泛的用户群体和最严格的质量标准。近些年来,传统行业都在拥抱互联网。WeTest在互联网研发上有着多年的积累和丰富的经验,可以借此机会分享给大家。也希望能通过交流,学习到金融行业的高标准建设经验。WeTest产品中心总监方亮致开场词 Part1 技术交流与分享主题一:建设测试中台的历史契机和组织发展阶段 分享人:Paro WeTest产品组组长 腾讯在多年快速发展后,研发团队规模逐渐庞大,流程变重效率下降。为了让产品创意能够快速获得验证和成长,快速交付高质量的产品和服务给用户,通过DO分离到DevOps、EP、FT这三大组织结构、流程和工程方法的转变,回到组织级敏捷的状态。 对新的FT组织形态来说是更小的团队,要更好的发挥每个人的单兵和协同作战能力。通过测试中台给个体赋能,充分发挥个体的智慧;以自组织,去中心化的协同合作,发挥群体的智慧。 通过大型团队的FT化转型,让大象重新回到奔跑的状态,通过大量的测试左移和测试右移活动,开发、测试、运维全员参与测试,各自从自己的视角体验和测试产品,最大效率的发现核心问题,弱化流程,重在产品。 主题二:WeTest测试中台介绍 分享人:Amy WeTest平台产品经理 本主题主要阐述了WeTest测试中台的演变史,并提炼出测试中台的技术与业务框架。 介绍了如何用有限的资源服务于腾讯内部2w多的开发、测试人员,内外部几百万个应用。并形成技术赋能合作伙伴的生态圈,沉淀优质SaaS服务并赢得合作伙伴口碑;介绍了WeTest的基础设施环境的管理方案。从真机到虚拟机再到定制机,以及服务器、压力源等。实现了既能支持私有云的全局方案,又能结合测试工具独立服务用户的私有方案;阐述了业务方、合作伙伴的如何在中台能力的帮助下,灵活开发、快速上架、自由迭代验证,自助化实现各种服务流程的经验,如DevOps的解决方案,各种应用和游戏解决方案等。主题三:腾讯DevOps自动化测试实践方案 分享人:Ryanjin 云测产品经理该环节主要分享了以下几点内容: 通过实例演示自动化测试流水线的全流程操作配置过程 ,并介绍了DevOps下的测试实施标准及经验;阐述了了流水线上的测试管理经验,包含 测试脚本自动生产、维护 及执行的相关原理与方案;展开分享了DevOps下的全链路测试活动,包含精准测试的匹配方案、mock&fake的配置管理系统、代码扫瞄的规则及常见问题、单元测试与代码优化的实例、分布式多端协作的功能测试 及 移动终端兼容测试的技术实现方案与实践经验。主题四:兼容性测试及AI在测试中的应用 分享人:Bingyan 云测线产品经理 兼容测试部分,主讲人与大家的分享主要为以下几点: • 如何选取机型。引入覆盖用户数、设备本身的特征、新机3个选择标准; • 如何驱动App跑起来。包含人工和自动化2种。人工的方式引入1机多控工具提升效率;自动化的方式引入多框架类型,确保支持各种品类的App; • 如何识别兼容问题。除Crash、ANR之外,主要介绍了一些高效识别UI问题的方法。 同时探讨了AI在测试用例管理,测试过程以及后续问题的解决方法上,如何提升效率。 另外,腾讯内部在做弱网测试、耗电量测试等专项也有一套完整的方法和工具。 移动端的机房运维方面,通过自研硬件和软件系统,确保整个移动端机房7x24小时稳定运行,健康度达到99%以上。 主题五:全链路压测与接口测试 分享人:Qimei 性能线产品经理 性能部分通过生动地描述性能是如何影响用户体验,引入性能测试的重要性,接着展开介绍了性能测试的发展历程、全链路压测的6大步骤和业务方实践全链路压测可能遇到的4大挑战及相关的解决方案,从浅入深地描绘出现网全链路测试的全貌。 同时还介绍了腾讯自动化接口测试流程、腾讯内部主流的4种接口测试方法和腾讯业务团队测试开发一体化的实践案例,充分展现了腾讯在接口测试领域的创新实践和技术突破。 主题六:客户端性能解决方案 分享人:Young 客户端性能产品经理APP性能是用户能感受到的产品质量,然而快速迭代的产品节奏,缺乏简单、易用、指标完善的测试工具,导致APP性能测试常常被忽视。 本次分享了腾讯在研发期如何分析性能问题,提炼背后的测试指标,并介绍了自研性能测试工具PerfDog。该工具支持移动全平台即插即用,无需root/越狱,12项性能参数, 让性能问题无处遁形,能在测试期高效解决测试分析难题。 由于安卓的碎片化、用户网络环境的差异、用户操作的复杂多样等因素,导致研发期的测试仅仅是真实生产环境的冰山一角。如何全网监测真实用户的性能体验,快速定位用户反馈问题显得尤为重要。 本次分享了腾讯自研性能监控工具QAPM,并重点分享了如何通过QAPM快速发现问题,评估问题影响面,定位真实用户的问题,以及验证修复后的优化效果。最后,介绍了该工具帮助富途牛牛优化操作卡慢、耗电严重等问题的实际案例。 Part2 开放区参观除了技术分享与经验交流,WeTest产品组的技术专家们还带领各位嘉宾参观了腾讯的测试开放展示区,展示了几款游戏的不同测试流程。参观的嘉宾们 一款基于图像识别技术来识别出屏幕位置,通过机械臂控制力度玩跳一跳小游戏的测试工具,引起了参观者极大的兴趣。除此之外,还展示了自动化兼容测试,云游戏,性能大数据以及全网舆情等质量工具的能力。机械臂演示 在此,特别鸣谢各位嘉宾的信任与支持,WeTest将继续以开放的姿态面向未来,与各行业质量领域的合作伙伴们,共同探索更优质的解决方案与实践经验,促进质量产业的技术革新,共同助力让用户持续获得高品质的产品体验。

May 11, 2019 · 1 min · jiezi

MTSC2019-汇集BAT大厂最热门测试技术和质量管理最佳实践六大测试专题40Topic重磅揭晓

汇集 BAT、TMD 互联网大厂最热门测试技术和最佳质量管理实践,MTSC2019 六大测试专题 40+ Topic 重磅揭晓!TesterHome 社区粉丝享专属福利,领取方式见文末! MTSC2019 大会简介中国移动互联网测试开发大会 Mobile Testing Summit China(简称 MTSC)是由国内最大的移动测试技术社区 TesterHome 发起的软件测试行业技术会议,大会以“软件质量保障体系和测试研发技术交流”为主要目的。MTSC 大会于 2015 年举办第一届至今,已成功举办了四届,共有 1000+ 家企业,10000+ 测试工程师、测试经理、CTO 参会,受到了全行业的广泛关注,是中国互联网质量保证行业的顶级会议。 MTSC2019 第五届中国移动互联网测试开发大会由 TesterHome 与腾讯课堂联合举办,将于 2019 年 6 月 28-29 日在北京国际会议中心召开,50+ 来自 Google、BAT、TMD 等一线互联网企业的测试大咖分享精彩议题,涵盖移动自动化测试、服务端测试、质量保障 QA、高新测试技术(AI+、大数据测试、IOT 测试),游戏测试,工程效率提升等专题。 会议时间:2019 年 6 月 28-29 日会议地点:中国·北京国际会议中心报名地址:https://www.bagevent.com/even...MTSC2019 精彩议题重磅更新目前已经有 40+ 来自腾讯、百度、阿里巴巴、美团、有赞、京东、蚂蚁金服、小米、360、Intel 、苏宁易购、爱奇艺、小红书、安居客、微医、优酷、蔚来汽车、陆金所、AppetizerIO、VIPKID、转转、汽车之家、科大讯飞、酷家乐、ANKER 等互联网一线公司重磅议题确定,具体信息见下图。 更多重磅议题(包括来自硅谷的)持续更新中,敬请关注! 扫描上图二维码,直达报名地址! 报名须知适宜听众测试工程师、测试开发工程师、研发工程师DevOps、TestOps、企业效能研发人员测试经理、研发经理、测试总监、研发总监测试架构师、质量管理人员、CTO参会收益线下参会交流权益:获得一张 MTSC2019 线下参会电子门票线上视频回看权益:在线观看 MTSC2019 录播视频回放(腾讯课堂,一年内不限次数)联系我们报名地址:https://www.bagevent.com/even...票务联系:李瑞敏-18210285475 or 刘华-18810532482议题投稿:topic@testerhome.com商务合作:bd@testerhome.com / 刘华-18810532482TesterHome 社区粉丝专属福利收到不少来自社区的同学反馈,希望可以享受到 MTSC2019 购票折扣福利,特意开启一个 MTSC2019 团购群,供大家组团享受优惠价格,并抽奖感谢大家协助推广! ...

May 9, 2019 · 1 min · jiezi

测试左移和开发赋能

从事测试开发那么长一段时间,一直不知道怎么去评价和衡量这个职业的目标是什么,超高的自动化测试覆盖率?或者超稳定超包容的自动化测试框架? 怎么才算得上是一个优秀的测试开发人员?上周有机会去听了阿里2天的公开课,好像明白了一些,拿来跟大家分享一下。 内建质量在微软有一句名言:“质量是设计出来,而不是测出来的。” 当然,这是理想情况,如果产品经理都这么优秀,这个世界早就和平了。 今天我们不说产品经理,我们从测试和开发的角度看,怎么内建质量。 让测试内建质量为了内建质量,测试同学就要尽可能早地干预开发写bug,让bug死在摇篮里。换句话说就是让开发不要写出可以避免的bug: 产品,开发,测试应该同时参与需求评审会议,澄清需求,达成共识将关键测试点作为需求的一部分,让开发同学交付需求时完成自测让开发内建质量从开发的角度看,要提高代码的质量可以有很多种方式: 提高自测意识,借助单元测试或者质量分析工具真正理解需求和技术架构,进行Code Review或者结对编程评估代码质量或者bug数量,跟绩效挂钩排除开发的自身能力问题,80%的bug都是需求理解不准确的问题,如果开发不愿背这个锅,那就甩给产品经理吧。 由此可见,如果测试不想看见这些bug,那么你就要帮产品表达需求,帮开发理解需求。 测试左移上面我们说内建质量其实已经涉及到了测试左移,例如让QA在参与需求研讨时提出问题,列出测试点其实已经开始在进行测试了。 为什么我们要测试左移呢?因为发现问题的时间越晚,修复的成本就越高。 图中橙色线条代表了传统测试发现缺陷的时间,大多数bug都是在功能测试和集成测试时发现的,最后导致的结果就是发布前加班加点,祈祷不要有bug漏到生产环境。 如果我们能把测试活动向左移动,那么就意味着修复成本大幅下降。 但是谈何容易?想要把大部分测试点放在单元测试环境完成,非常依赖成熟的开发环境和极其资深的开发人员。 在阿里是这样实践的,让测试给开发赋能。 开发赋能从字面上解释就是,测试同学给开发赋于一定的能力,让他们有能力去完成测试,比如: 降低测试门槛使用测试工具(自动化)获取测试数据培养测试意识举个例子,开发同学在完成需求代码后,可以点击一个按钮得到测试数据,再点击一个按钮验证测试覆盖点,喝杯咖啡后就可以看到测试报告。 从上面这个例子看,开发同学其实他并不需要懂测试数据的设计,自动化测试的开发,测试报告的编排,但是他依然可以快速完成需求测试(门槛低),只要他养成习惯(培养意识)。 那么你就会说,这对测试的同学要求是不是很高啊?对啊,回到开篇的问题,如何评判一个测试人员的能力?在我看来就是评判他给开发和团队赋能的能力。在阿里是这样,在微软和谷歌也是这样。 一个优秀的测试人员将测试左移时,并不会将负担转移给开发。相反地,而是帮开发写出更高质量的代码,更高效率地交付需求。 那么测试能左移到什么程度呢?比如让开发在Coding时就发现问题,或者还没Coding就发现问题,那应该是极好的。 怎么做到呢?刚才已经说过了,测试即需求,把bug扼杀在摇篮里。 实践方法想实践测试左移可以有很多种方法,每个组织需要根据实践情况进行裁剪和调整。 参与需求评审,帮助开发理解需求参与架构、设计分析,提早预防问题践行BDD,TDD单元测试提案,接口测试提案提供模拟数据能力,测试工具制定提测标准,拒绝低质量代码回归测试自动化静态代码分析,单元测试覆盖率测试左移的概念给整个测试角色带来了巨大的转变。软件测试不仅仅是“发现bug”,而是致力于“尽可能早的检测和预防bug”。 参考资料培训课件: 阿里Devops体系和实践.svg参考文章:What is shift-left testing?关于作者:Toby Qin, Python 技术爱好者,目前从事测试开发相关工作,转载请注明原文出处。 欢迎关注我的博客 https://betacat.online,你可以到我的公众号中去当吃瓜群众。

April 21, 2019 · 1 min · jiezi

一分钟读懂兼容报告——行业对标数据助你定位产品状况

作者:WeTest小编商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。原文链接:https://wetest.qq.com/lab/view/450.html通过兼容测试服务,用户在拿到一份数据详细的兼容测试报告后,可以直观看到产品自身的兼容性问题,如安装失败、UI异常、闪退等现象。在上一期《一分钟读懂兼容测试报告》系列中,为了让用户能更直观判断产品纵向兼容性变化情况,掌握优化效果,推出“历史版本对比”功能,可勾选历史版本测试记录,自动生成兼容性图表对比报告,帮助用户更直观观察版本兼容质量情况。但是,用户也产生了新的疑惑:指标优化到什么标准,才算是好的标准?行业数据对比功能上线 轻松判断产品档次“书同文,车同轨,行同伦”,为了让每个测试和开发者能清晰地了解自己产品的测试情况在与行业的竞品相比是什么情况,WeTest在深度兼容和专家兼容测试报告中,率先上线了“行业数据对比”功能,收集大量同行业应用的测试数据进行分析处理,帮助用户进行横向对比。如何使用“行业数据对比”功能?用户进入提测页面上传完产品后,系统会自动弹出提示“完善信息”,使用者根据具体情况选择相应行业,确认提交即可。拿到深度兼容或专家兼容测试报告时,在问题概述通过率模块下方,会根自动显示查看某行业数据对比。只需点击蓝色字体“行业数据对比”,即可进入对比报告页面。在对比报告页面里,WeTest对提测产品的通过率、安装失败率、拉起率、Crash率等数据和“行业均值”、“行业前20%”数据标准进行对比参照。通过数据对比参照,可以判断自身产品的兼容性水平档次,便于开发者优先处理严重级别问题。测试/开发者除了对以上兼容性方面的数据水平关注外,还会注意每台设备的性能数据,观察CPU、内存占用和FPS等数据情况,判断产品质量如何。设备性能数据标准出炉 对比更简单用户除了可以对比兼容性问题概况数据外,WeTest还整理出了设备性能数据的行业标准:从报告中可以横向对比应用平均性能水平,提供筛选功能,选取不同档次设备的数据对比情况,让开发者更有针对性的进行优化。_WeTest兼容测试致力于帮助厂商找出产品兼容性问题,节省厂商测试成本和时间,一键提交获取深度兼容或专家兼容报告,现可同步获得详细的行业数据对比。究竟你的产品兼容性状态如何呢,快来WeTest检测一下吧!传送门:https://wetest.qq.com/cloud/deepcompatibilitytesting

April 5, 2019 · 1 min · jiezi

改革春风吹满地,安卓新系统Q上线腾讯WeTest

作者:WeTest小编商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。原文链接:https://wetest.qq.com/lab/view/449.html“刚要适配安卓派,Q就来了。”3月14日谷歌推出了期待已久的Android Q的首个测试版本Android Q Beta 1 ,这是Android系统推出以来的第十个大版本。_安卓Q相比之前的版本,增加了几点特性,比如:1.关注用户隐私和权限:在以往的权限授权上增加了“仅使用时允许”选项,可有效避免应用长时间使用功能导致电量损耗。此外,应用必需通过系统文件选择器才能访问下载文件。2.折叠屏支持:最近手机厂商纷纷开始探索折叠屏设备领域,为了帮助开发者顺利适配折叠屏及大屏设备,Android Q引入了多项改进,比如更新了onResume和onPause工作模式,resizeableActivity属性功能。3.分享功能: Android Q新增了一项名为Sharing Shortcuts的机制,允许用户直接跳转至另一个应用进行分享,提高分享响应速度。分享网页时,URL地址已经被复制。4.通知栏改动:Android Q中向左滑动可以跳出“稍后提醒”(Snooze)和“阻止”、“保持沉默”和“提醒我”选项,向右滑动可以删除通知。5.Wi-Fi:在Android Q中可以启用高性能、低延迟的自适应Wi-Fi模式。用户可以直接扫描二维码连接 Wi-Fi,并可生成二维码分享当前连接给其他设备连接。6.启动和运行优化:通过基于云端的预编译配置文件和对 ART 运行时环境的进一步优化,Android Q 在应用启动速度和应用运行流畅度上都有了不小的提升。Android Q有除了上述几点,还有更多的新变化,对于有新版本、新产品要发布的游戏应用等厂商来说无疑是个新挑战。如何能尽快使用到Android Q,并且针对性的进行适配测试?腾讯WeTest平台一直关注市场热点和行业动态,在Android Q推出之际已同步上线Android Q设备,包含谷歌 Pixel 2 XL和谷歌 Pixel设备。更提供谷歌官方非公开API扫描功能,提早发现产品使用的 Android SDK中是否有非公开 API,帮助用户提早规避新系统适配问题。现已支持免费真机调试及标准兼容服务。标准兼容服务:1.自选设备:覆盖市场主流设备,可自行筛选添加到测试名单。每台设备测试约5分钟,包含从安装到卸载全过程。2.快速生成报告:测试报告1-4小时内即可生成,报告包含测试概况,问题严重情况,并记录每台设备测试情况,如测试过程截图、性能和日志等数据。3.支持视频回放:大部分应用类APP支持每台设备测试过程录像,通过视频查看测试全过程。4.团队协作:分享:每份报告可添加备注并共享给他人。对比:支持历史版本数据对比,通过对比图表查看优化情况。云真机远程调试:1.设备丰富:拥有从Android 4.1到Android Q版本的安卓设备,覆盖市场主流机型,帮助测试和开发者解决手中测试设备不足困境。2.近在眼前:本地操控云屏,支持旋转屏幕、返回键、菜单键,返回主界面功能,部分设备可支持音频。还原真实操作,更精准定位问题。3.完整反馈:使用时可保留截图,查看或下载实时日志。用户可结合标准兼容测试报告的结果对问题进行复现检验。腾讯WeTest平台致力于帮助厂商解决产品测试需求,打造高质量产品。针对市场安卓Q热点,现已推出Android Q专区,个人和企业认证用户均可免费优先享受测试服务。活动规则:1、个人认证用户一次性获得远程调试120分钟免费测试时长(安卓Q),标准兼容6次免费测试次数(安卓Q)。2、企业认证用户一次性获得远程调试600分钟免费测试时长(安卓Q),标准兼容12次免费测试次数(安卓Q)。点击传送门马上了解“安卓Q测试”详情。传送门:https://wetest.qq.com/activity/Android

April 5, 2019 · 1 min · jiezi

为什么要抛弃Pact?如何快速实现契约测试(CDC)

前言在前几天的博客中,我转载了一篇文章,其中介绍了契约测试和pact是怎么实施的,的确很有帮助。但我经过研究,其实是pact本身也是有缺陷的,结合我近期在使用的服务型工具和我的实际情况,觉得实现契约测试其实有更有效率的解决方案,本文就通过我的视角看看我是如何快速实现契约测试的。契约测试为前后端对接的过程中会出现信息不对称,以及工作进度不一致的情况,因此希望通过事先约定好API返回数据的文档,根据文档来开发后端代码,以及生产可以被前端调用的虚拟的API,帮助前后端能够同时开展工作并且保持前后端代码的正确性,加快后期的系统集成测试甚至是取消系统集成测试。我们将以上的做法称之为契约测试。契约测试最开始的概念由 Martin Fowler 提出,它又被称之为:消费者驱动的契约测试(Consumer Driven Contracts),简称CDC。这里的契约是指软件系统中各个服务间交互的数据标准格式,更多的指消费端(client)和提供端(server)之间交互的API的格式。契约测试带来的变化主要是:1.将前后端测试解耦,前后端可以分别在对方还没有完成工作的时候就开展测试;2.将测试过程前移,加速或者取代集成测试;3.保证数据的一致性,让后端服务返回的数据就是前端想要得到的。我做了一张图方便大家理解CDC的概念:上图经历了三个步骤:1.消费者(广义的前端)根据业务需要编写好契约文件,契约文件里面编写了需要返回的数据;2.消费者(广义的前端)向契约文件(实际上是一个API服务)发起请求,得到预期的结果,验证前端业务逻辑是否正确;3.契约文件(实际上是一个API服务)向提供者(广义的后端)发起请求,得到后端真实的返回结果并且与契约文件中的数据规则进行校验,判断后端返回的数据是否满足契约的要求。如果无法通过校验,说明提供者的服务发生了改变,或者是没有按照契约所规定的来进行开发。如果通过了上面的三步,我们可以认为前后端对于契约的理解和实现是一致的,等到真正集成之后也不会出现问题。Pact 契约测试框架之前业内较为常见的做法是通过Pact(一个契约测试框架)进行契约测试:通过前端开发人员编写代码进行测试并生成Pact契约文件,后端通过Pact Brocker等服务管理契约以及调用等。但是Pact也存在一些缺点:1.需要引入Pact的相关文件以及正确搭建服务,用起来需要一定的时间成本2.生成的返回数据不够灵活,无法编写代码生成复杂的随机数据;3.无法判断请求参数来返回不同的结果;4.需要开发人员额外编写代码,增加了工作量;5.存在代码入侵的情况,并且目前支持的语言较少;6.模糊了开发与测试人员之间的界限,管理不当容易导致重复劳动;由于有以上的不足之处,Pact 在实际应用的效果往往并不理解。因此我们提出了通过 Mock API 以及测试用例实现更快速、更有效地契约测试。通过 EOLINKER API Studio 实现契约测试EOLINKER API Studio(https://www.eolinker.com) 提供了UI实现的 Mock API,配合API Studio 的测试用例与自动化测试,可以帮助研发团队更快速、更有效地实现契约测试。什么是Mock API?通过 Mock API,您可以事先编写好 API 的数据生成规则,由 API Studio 动态生成 API 的返回数据。开发人员通过访问 Mock API 的 URL 来获得所需要的数据,完成对接工作。在 API Studio中,同一个项目中的 Mock API 的地址前缀是相同的(如mock.eolinker.com/uasyd1/…),因此可以在代码中将 Mock API 的地址前缀作为全局变量,项目上线时仅需替换变量的值即可改变整个项目的 API 请求地址前缀。创建Mock API,实现前端的契约测试在EOLINKER API Studio中,创建 Mock API 之前需要先创建API文档(或者导入Postman、Swagger等数据),API文档可以作为前后端对接的依据。这里我创建了一个简单的用户登录API文档:创建好API文档之后,点击 Mock API 标签进入Mock API的管理页面,在这里可以快速创建多个Mock API,并且根据不同的请求参数返回相应的数据:创建一个 Mock API 期望,我们希望当传递user_name=和user_psw=112233时,Mock Server返回登录成功的数据,这里返回的数据类型选择Json,填写好Json的格式以及内容即可:点击预览按钮可以看到是我们希望得到的返回数据,然后确定保存即可:通过这种方式可以创建多个Mock API,并且通过请求红框处的 Mock API URL 得到返回结果:API Studio 中也提供了强大的 API 测试的功能,我们直接在平台上对刚才的登录成功的 Mock API 发起请求,可以看到当我们传递正确的参数时,可以得到预期的返回结果,至此契约测试的前端契约就已经完成了:创建测试用例,实现后端的契约测试:传统的契约测试其实并不能够保证测试的覆盖率,因为前端开发人员提供的契约文件很可能无法覆盖所有的请求情况,导致出现漏测的情况。因此 API Studio 建议将后端的契约测试交给测试人员负责,这样可以提供更完善的测试用例,并且可以结合各类CI工具实现自动化测试。由于 API Studio 基于 API 文档来实现契约测试、API用例测试、API自动化测试等功能,因此可以将前端、后端、测试人员解耦,工作的流程可以进一步改进为下图所示,前后端、测试人员可以同时开展工作,并且测试用例可以导入到自动化测试中成为长期的定时测试任务。由于测试用例与自动化测试所包含的内容较多,如有需要可以前往 EOLINKER API Studio 官方网站(https://www.eolinker.com)或者是查阅 API Studio 帮助文档,在此不再赘述。 ...

April 4, 2019 · 1 min · jiezi

契约测试的必要性

由于工作的原因,最近一直在研究API接口测试问题,因为前后端开发经常遇到进度不一致、信息不对称的情况,最近正在找寻能完美解决这个问题的方案。尝试寻找了一下,发现这其实是一个契约测试问题,在找到之前的一些文章,看完觉得对我理解契约测试有很大帮助,转过来记录一下。现在我已经有一些思路了,后续会专门写一篇文章来记录这部分的内容。测试金字塔模型测试是软件流程中非常重要,不可或缺的一个环节。一般的测试分为单元测试,集成测试,端到端的手工测试,这也是构成测试金字塔的三个层级。我们今天将要讨论的话题是契约测试,它是处于单元测试和集成测试中间的一个环节。这三个层级分别测试的场景如下:单元测试:测试单个service集成测试:测试由多个services组成的系统端到端测试:测试从用户到各个外部系统的整个场景什么是契约测试?契约测试最开始的概念由Martin Fowler 提出,请参见这篇文章, 它又被称之为:消费者驱动的契约测试(Consumer Driven Contracts)。这里的契约是指软件系统中各个服务间交互的数据标准格式,更多的指消费端(client)和提供端(server)之间交互的数据接口的格式。为什么要存在契约测试?系统工程中存在这样的理论:线性系统(即复杂性随规模线性增长的系统)的可靠性等于组成它的各个组件的可靠性之乘积。这容易理解,因为整个系统正常工作的条件是必须每个组件都同时正常工作。如上图所述,三个组件共同支撑的系统,如果每个组件的可靠性是90%,那么整个系统的可靠性就是 90%×90%×90%=72.9%,我们可以看到系统整体的可靠度是低于任一组件的可靠性的。如果一个系统由100个组件组成,每个组件即使能达到99%的可靠性,那么整个系统的可靠性也会降到36.6%左右。我们常说复杂性是软件工程的最重要的特性,一个完善的软件系统必然是靠很多的子系统,组件共同撑起来的。根据上面的理论,如果是一个复杂的软件系统那么每一个组件的可靠性都对系统整体的可靠性有着非常重要的影响,排除组件本身的可靠性的因素,各个组件之间的相互依赖和调用关系也将会对系统的稳定性有着决定性的影响。随着业务的复杂度越来越高,整个系统也变得越来越庞大和错综复杂,在今天的软件工程开发中微服务已经不是一个新名词,在微服务的架构下通常一个client会与多个service相互交互,可以想象一下如果某一个服务的接口发生变化将会影响整个系统的运行。如下图展示的传统的大服务与微服务的区别。那么在微服务模式下如果保证各个服务端与消费端之间以及服务与服务之间能够可靠的交互呢?这就回到了到我们要聊的契约测试的话题。如下图,在服务端接口发生变化的情况下通过契约测试可以很容易的测试出契约不匹配,可以在集成测试之前就能发现问题,尽早解决。契约测试和单元测试,集成测试,端到端测试区别是什么?单元测试:通常是测试单个类,方法的可靠性它的价值在于快速的反馈某一个很小的功能点是否能准确的工作通过单元测试能够更明确的剖析你的实现逻辑如果用TDD的开发模式,能够做代码重构以及改善代码整洁度集成测试:关注的是各个服务之间交互测试接口连通性和流程的可用性端到端测试:从用户的角度验证整个功能的准确性和可用性测试的是端到端的流程,会加入用户数据验证功能是否可用不会关注在某一细小的功能点的实现关注的是整个业务流程,产生的业务价值大契约测试:测试接口和接口之间的正确性验证服务层提供的数据是否是消费端所需要的将本来需要在集成测试中体现的问题前移,更早的发现问题更快速的验证消费端和提供端之间交互的基本正确性契约测试解决能解决什么问题?可以使得消费端和提供端之间测试解耦,不再需要客户端和服务端联调才能发现问题完全由消费者驱动的方式,消费者需要什么数据,服务端就给什么样的数据,数据契约也是由消费者来定的测试前移,越早的发现问题,保证后续测试的完整性通过契约测试,团队能以一种离线的方式(不需要消费者、提供者同时在线),通过契约作为中间的标准,验证提供者提供的内容是否满足消费者的期望。一般契约测试是在单元测试之后,集成测试之前要进行的,首先在保证各自功能正确的前提下测试消费者和提供者的契约是否相匹配,然后再进一步的测试功能的完备性和整个业务流的正确性。写在最后本文主要浅显的介绍了契约测试是什么以及它的重要性,后续将会继续介绍契约测试的框架以及相关实践。

April 1, 2019 · 1 min · jiezi

QuarkChain测试网更新2.5版 为主网上线前最终预览版

为迎接QuarkChain主网上线,提前展示主网新增的功能,我们计划将QuarkChain测试网更新至2.5版,在2.4版测试网功能基础上进一步提升安全性与灵活性。QuarkChain主网将于北京时间2019年4月30日上线。在主网上线前,为测试主网多原生代币的支持功能和PoSW(在拥有权益下的工作量证明)共识机制,并进一步提升现有网络的安全性,让现有的社区成员熟悉未来主网,这将是主网上线前最后一次测试网更新,测试网2.5版也将是主网上线前的最后一个预览版本。测试网挖矿将延长进行至主网上线,并且活动增加一百万QKC挖矿奖励。需要提醒的是:在现有2.4版本测试网根链区块高度达到58,000时,现有网络将替换为2.5版本的网络,QuarkChain工程师已经准备了新的挖矿镜像。升级后所有挖矿操作同之前不变,请各位参与有奖挖矿的社区成员注意切换,同时欢迎更多的用户参与挖矿,提前感受QuarkChain主网的性能特点,并赢取奖励。更多消息请访问:https://github.com/QuarkChain…测试网挖矿奖励活动:QuarkChain 测试网2.0挖矿正式开启QuarkChain不仅100%完成了白皮书中承诺的所有功能,更随着区块链行业的发展增加了新的特性,此次更新增加的功能如下:提供多原生代币支持功能,只要用户愿意支付足够的手续费(由已经存在原生代币来支付),任何用户都能够创建一种新的原生代币。通过使用原生代币,用户可使用一步支付给智能合约并触发合约自动生成所有计算。而不会发生类似“明明是ERC 20代币的交易,却需要支付ETH作为GAS费”的情况。依靠对多原生代币的支持,使得项目方代币经济学模式可以更加灵活。此外,对于在QuarkChain上进行交易的用户来说,依靠多原生代币,可以让GAS费(即区块链系统功能使用手续费)支付手段更加灵活多样,而不局限于唯一的原生代币。PoSW共识机制上线,简单而言,PoSW融合了PoW和PoS的两大特点,押币挖矿,算力占全网的比例越高,需要的压币的数目也就越多。PoSW其基本思路是,如果一个矿工想将其所有的哈希算力用于挖矿(假设其具有网络Y中所有算力的P%),那么他必须持有并抵押跟P%等量的Y通证。这意味着,如果有人要实施双花攻击,攻击者除了需要掌握超过全网50%以上的算力之外,还需要抵押全网足够的通证,也就成为了一种应对51%攻击的有效解决方案。此外,运营一个矿池的成本将会更高,因为矿池的所有者在扩大算力规模的时候还需要不断的获取网络通证,也就从另一个角度避免了中心化。更多相关文章介绍,请点击阅读:多原生代币区块链技术解析—下一个技术风口压币再挖矿?PoSW如何同时利用PoW和PoS长处并化解51%攻击

March 13, 2019 · 1 min · jiezi

一分钟读懂兼容报告:测试过程视频复现,问题定位很轻松

作者:腾讯WeTest商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。原文链接:https://wetest.qq.com/lab/view/444.html一分钟读懂兼容报告:测试过程视频复现,问题定位很轻松上一期《一分钟读懂兼容测试报告(一):概况篇》,介绍了WeTest兼容测试报告的概况信息,包括测试通过率、机型聚类、测试场景截图等功能。随着用户使用的不断深入,用户对报告产生了更多的诉求。在查看报告时,用户在了解了问题概况和分类情况之后,都会进入“问题定位”的环节,用户在进行问题定位的时候会提出新的问题:1. 问题出现前用户进行了什么操作?问题发生后的状况是怎么样的?问题优化后产品表现有什么区别?针对用户的需求,WeTest兼容测试报告进行了优化。优化一:复现操作过程视频,迅速定位问题WeTest之前的适配兼容测试报告,在报告中能看到所有操作步骤的截图,如下图:根据截图可以看到测试的过程是如何点击的,定位问题出现操作节点,但是在对部分产品进行测试的时候,因为截图具有间隔时间,中间有5秒左右是空白的,开发测试人员无法查看。为了更全面展现测试情况,WeTest为测试报告提供视频播放功能,在截图上做补充,播放测试过程录像。(目前已经支持应用及部分类型手游)提测人可以从入我的报告-设备详情页,进入设备详情;或者进入问题列表-问题详情查看视频。视频连接地址:https://v.qq.com/x/page/r0845…以上是部分测试的视频片段,测试过程中在系统跳出提示“请输入账号”点击确认后,屏幕出现黑屏。视频里包含从拉起应用到结束过程,全程操作一目了然,帮助开发者们清晰定位问题出现的前后操作,复现问题。功能二:报告对比对于APP来说,版本迭代的速度和质量尤为重要,快速处理优化上线问题,保障和提升用户体验,是重点核心。厂商需要迅速对上个版本的适配问题做修复,在为了帮助开发者们更方便地纵观历史版本的适配情况,WeTest在报告中右上角添有“历史版本对比”功能,可直接勾选历史测试版本进行对比。600报告对比图示报告中包含:1) 基础数据2) 通过率3) 问题数4) 测试机型数5) 性能数据:安装耗时、FPS、CPU、内存占用,流量等数据报告通过图表显示,可直观观察历史版本数据情况。_目前“版本对比”功能在各项兼容测试服务报告中均已支持;“报告视频”功能在深度兼容测试服务可用,欢迎体验!传送门:https://wetest.qq.com/cloud/deepcompatibilitytesting腾讯WeTest (wetest.qq.com)是由腾讯官方推出的一站式品质开放平台。十余年品质管理经验,致力于质量标准建设、产品质量提升。腾讯WeTest为移动开发者提供兼容性测试、云真机、性能测试、安全防护、企鹅风讯(舆情分析)等优秀研发测试工具,为百余行业提供解决方案,覆盖产品在研发、运营各阶段的测试需求,历经千款产品磨砺。金牌专家团队,通过5大维度,41项指标,360度保障您的产品质量。

March 12, 2019 · 1 min · jiezi

软件测试行业年度核心热点数据大揭秘(2018 )

前言2018 年底,TesterHome 测试开发社区发起了面向中国互联网软件测试行业的年度调研活动,截止到目前,已经收集到 2037份问卷反馈,在这里特别感谢每一位参与者的大力支持。经过数据整理和分析,现将调研结果报告开放给各位软件测试同行。期待各位提出反馈和建议,也希望 TesterHome社区今后每一年都能给测试行业贡献更高质量的行业调研报告。本次调研报告地址:https://jinshuju.net/f/iBwLDt软件测试工程师生存指南 | 最值得关注的 19 个问题答案揭晓第一项.男女比例 —— 测试猿 or 测试媛,谁才是少数群体?本次参与调研的参与者 2000 余人中,男女比例有点颠覆了大家的认知,以往大家都会认为测 试行业妹子多,实际上每 3 个测试同学中就有 2 个多的男同学。当然相对于整个 IT 行业 的男女比例来说,测试行业的女生比例还是比较高的。 第二项. 年龄分布 —— 测试开发工程师的中年危机了解下?测试行业的主力军年龄分布主要是集中在 26-30 岁这个区间,这部分的群体承担着行业 发展的主导力量,属于比较合理的分布。值得注意的是已经有将近 1/4 的人处于 30-35 岁的年龄段,前阵子热烈讨论的 34 岁年龄焦虑的话题可算是吸引力大量的眼球,也引发了“行业中年危机”大讨论,而大于 35 岁的测试人员达到了 4.8%。作为测试行业中高级群体,这部分人的未来发展不仅仅是代表着自己,其他年龄段的人也在关注他们, 因为这部分人代表着测试人员未来发展的风向标和先驱。 第三项. 城市分布 —— 软件测试岗位在一二线城市的分布情况?不出所料,一线城市占据了绝对的主导地位,测试行业作为 IT 行业的一部分,间接体现 行业公司的发展现状。分布在一线城市比例接近七成,这说明就业机会还是主要聚集在一线城市,二线城市虽然有个别城市发展迅速,但是整体来说,一线城市的公司数量和机会依然是大家青睐的地方,如果每年都可以完成这样的调研的话,或许可以看出一线城市和二线城市人才流动的趋势,帮助大家做一些决策。 第四项. 测试工作经验分布 —— 测试小白和老司机比例?工作年限排第一的是工作 1-3 年的群体,测试行业整体的工作人群比较年轻化,也可能存在人员流动较大的因素在里面。与前面选项不太匹配的是年龄分布主要在 26-30 岁的区间,而工作经验的比例却并非 4-5 年居多,这个数据的差异推测是因为转岗导致的。 第五项. 测试人员学历分布 —— 行业学历水平变化趋势?本科群体的比例达到 73.5%,行业的人才水平不断的提升,通过这个学历的分布可以看 出各大公司要求学历是正常情况,行业在发展的同时必然是择优录取,且可选择的人才池本来就很大。如此激烈的竞争环境下,努力提升个人竞争力显得尤为重要。 第六项. 测试人员岗位分布 —— 市场对不同职级岗位的需求?参与问卷的同学有一半是测试工程师岗位,测试开发和自动化测试两个岗位目前还处于待发展的阶段,社区的测试管理角色居然达到 18.4% 的比例,期望这些人能不断引领测试行业的发展。第七项. 测试人员薪资分布 —— 你的薪资水平打败多少同行?不要再纠结于 MM 匿名区的年薪百万了,我们来客观的了解一下行业的薪资分布,看看自己在行业里是什么样的水平。当前的数据有 70%的人群来自一线城市,而超过 50%的 人薪资主要分布在 5-15K 的区间,近几年来由于媒体过度曝光各大公司的校招生薪资动辄 22K 起,希望各位测试同学能够客观的看待测试行业当前的薪资状况。我们同时整理了一份薪资分布和年龄的关系图,供大家参考。第八项. 进入测试行业的途径 —— 企业求贤若渴,英雄不问出处?毕业就进入了测试行业占了一半以上,这个数据也在情理之中,鉴于毕业生进入测试行业的比重很大,如何保证应届生能够尽快适应岗位需求,满足企业的人才空缺,是学校和社会机构需要共同来思考和解决的问题。不过值得关注的是转行到测试的人员达到了 19.1%和 12.4%,而培训机构为测试行业输送的人才也占到了接近 10%。第九项.测试团队的规模 —— 多少人才算测试大团队?测试团队主要还是以小团队发展为主,大规模的测试部门应该主要分布在一些大厂中。 63%的测试团队的规模在 5-15 人,在团队合作和执行效率上,这种规模的团队协作会更加灵活和机动。第十项. 测试 vs 开发比例 —— 新时代测试导致的人才结构变化?测试开发比例在 1:5 左右是比较理想的情况,不足 1:3 的项目团队的测试资源还是非常充沛的,而 1:10 及更大比例的测试团队,如果不考虑编制问题的话(如大量采用外包人员),则需要有先进的流程管理方式和健全的平台化工具来保障这种程度的人员配比,当然也可能是因为很多测试开发工程师算到了研发岗。第十一项.从事测试左移右移的内容有哪些? —— 你的技能树点亮多少?随着行业的发展,测试人员水平越来越高,对质量保障的切入点变得越来越丰富,项目中的测试左移和右移的工作会越来越多,也对测试从业人员带来了更高的要求,通过问卷的调研结果,能看出测试人员在自动化测试和需求文档维护上投入了大量的精力。第十二项.测试流程包含环节 —— 业内普遍的流程是怎样的?这些环节应该是测试流程中贯穿整个过程的事情,也是项目节奏把控比较好的一种体现,测试人员需要积极主动的推动和全程参与。第十三项.测试人员提升能力的方式 —— 哪些办法最有效?来了解一下测试同行们都是如何提升自己能力的吧。“社区论坛博客”和“测试书籍阅读”这两项排名靠前,欢迎多来社区发帖讨论,也多多参加社区组织的线下沙龙和技术聚会,共同学习互动。第十四项.优秀的测试人员应该具备的技术/能力 —— 真·测试大咖牛在哪里?优秀的测试人员具备的能力,这个数据可以帮助大家知道,想要得到行业认可,应该从哪些方面入手学习,才更容易在同行中具备优势。第十五项.工作中最阻碍测试进度的因素 —— 项目延期杀测试祭天?需求不明确居然占据到 77% 的比例,产品经理们请长点心吧。这个锅测试不背。^_^第十六项.哪些环节可以进行效率提升 —— 高效能测试的内功建设?大家的观点很明确,相信业内也是这么做的,所以当你的团队打算投入效率化的工作, 不妨看看其他团队的侧重点都有哪些。第十七项.您当前工作中使用到了哪些效率提升方式 —— 测试必备神兵利器?果然 API 自动化测试和 UI 自动化测试占比最高啊,社区的数据也反映出大家比较热衷于讨论这两个话题。最近一两年社区讨论 CI/CD 和 DevOps 话题的帖子也越来越多了,测试人员不论是在岗位职责还是技能发展上的路也越来越宽。第十八项.测试行业未来的趋势更看好哪些方向 —— 与时俱进,未雨绸缪?行业发展趋势往往跟随热点来的,就近 2 年来说,AI 和机器学习被看好是情理之中,IoT 行业的快速发展也给测试行业带来了不一样的挑战,大家在最近 2 年择业的时候可以参考一下这个数据。第十九项.未来 5-10 年您想从事的岗位 —— 测试征途,路在何方?大家的目标还是很明确的。虽然测试经理和主管的人群占了本次调研 18.4%的比例,但是总监及以上的群体只有不到 1%,未来的路充满了挑战,请大家努力加油。结束语本次问卷的结果向我们传达了一些重要信息,测试行业的男女比例、薪资分布、年龄分布等等,与此同时也告诉了我们一个出色的测试工程师应该如何规划自己的未来,包括薪资的增长、行业的选择、城市的考虑、职业发展的空间、别人都在研究什么技术,同时也留下了一些疑惑,比如工作中需求不明确占了 77.8%的问题;大于 35 岁的测试人员有 4.8%;一大批应届生直接进入测试行业,而很多院校还没有专门的测试专业和课程;测试行业的薪资水平似乎不那么高等等。以上种种信息,不论是意料之中的,或者意料之外的,我们相信对个人还是团队既可以审视过去的自己,也可以帮助我们更好的迎接未来的挑战,测试行业年龄依然是比较年轻化,这是我们比较欣慰的事情,未来也会有越来越多有想法、有执行力的年轻人承担起行业发展的责任,去撑起未来行业各个方向产品的质量重担,测试技术也会随着新兴领域的崛起和发展而越来越多元化,希望未来的测试行业在 AI、IoT、加密货币区块链技术、大数据算法、VR/AR 等领域遍地开花。另,由于本次调研是社区第一次做规模化调研,并没有往年的对比数据,在很多选项上没办法做总结和预测,只能给出粗略的点评,仅供参考。比如对于人员的地区分布做的不是很细致,最初的问卷版本中城市选项比较多,担心填写有负担,最终精简出按一二三线城市来划分,也有些遗憾。最后,还是要感谢每一位花费时间参与填写问卷调研的测试同学,也感谢每一位给问卷调研提供帮助的人,非常感谢大家!编者按:关注 TesterHome 社区公众号,回复「调研」并填写表单,可获取高清版 PDF 报告。活动推荐 | MTSC2019 互联网测试开发大会议题征集MTSC 中国移动互联网测试开发大会(Mobile Testing Summit China)是由 TesterHome 社区主办的软件测试行业年度技术盛会。自 2015 年创办以来,MTSC 已成功举办 4 届,并塑造了“落地、务实、有深度”的内容风格,近万名有从业经验的测试开发工程师、测试经理和质量管理人员参加 MTSC 大会交流软件测试前沿技术,分享最佳实践经验。MTSC2019 第五届中国移动互联网测试开发大会正式启动,将于 2019 年 6 月 28~29 日在北京国际会议中心举行。大会官网:https://testerhome.com/mtsc/2019本届大会联席主席为国家工信部的杨春晖主任、阿里优酷质量部负责人倪生华(玄黎)、腾讯 WeTest 负责人方亮、百度工程质量部负责人严飞、小米手机测试部总监周志彬、同济大学的朱少民教授、南京大学的陈振宇教授以及 TesterHome 社区联合创始人思寒。推荐演讲嘉宾特别福利目前,MTSC2019 面向软件测试行业全球公开征集议题,期待各位资深测试技术专家和质量管理经理贡献 Topic 或者推荐演讲嘉宾。推荐成功者,免费赠送一张 MTSC2019 大会门票。:)议题信息可发送邮件至: topic@testerhome.com往届 MTSC 大会风采 ...

February 20, 2019 · 1 min · jiezi

MTSC2018 测试开发大会视频公开(含 PPT)| 年度福利

过去的几年中,软件测试与质量保障行业悄然间发生了很大变化,TesterHome 社区作为行业见证人,通过 MTSC 大会记录了测试行业技术趋势与人才结构的变革历程。2018 年,MTSC2018 大会共邀请了 50 多位测试行业国内外顶级专家,与来自近 500 家业界领先企业的 1600 余位测试开发工程师、测试架构师与质量管理者交流分享了一线企业软件质量保障体系建设经验、测试研发新技术与最佳实践案例,助力企业技术选型、工程效率提升和业务升级转型。现在,MTSC 组委会决定公开 MTSC2018 测试开发大会视频(含 PPT 资料),作为献给 TesterHome 社区用户和测试从业人员的年度大礼,期待推进行业进步。MTSC2018 大会视频公开《腾讯手游自动化测试方案和 AI 实践》 by 蔡怡峰,腾讯 IEG 品质管理部测试开发负责人 & 李德元,腾讯 IEG 品质管理部高级测试开发工程师《基于分层快速反馈的金融 App 质量防护方案及实践》by 王小丽,TestBird 测试架构师《大疆互联网的一站式自动化测试解决方案(基于HttpRunner)》 by 李隆,大疆高级测试开发工程师《2 个人如何保证 2 亿用户 App 的质量》by 唐巧,小猿搜题产品技术负责人《ebay 自动化测试基础架构的最佳实践》 by 茹炳晟,eBay 中国研发中心测试基础架构技术主管《AirtestProject-次世代UI自动化测试解决方案》by 李翔,网易游戏测试专家《大船好调头京东测试团队从业务到技术转型实践》by 贾瑞卿,京东高级测试经理《基于用户视角的Android页面性能评测体系》by 林紫嫣,优酷 Youku 高级测试专家《玩转58场景下的自动化测试》by 吴明浩,58 集团测试架构师《探测小程序的机密》by 甄晓龙,转转高级测试工程师《千万级支付系统稳定性测试实战》by 范勋伟,美团点评智能支付测试团队负责人《大众点评APP:Mock自动化的专项应用》by 李洁,美团点评资深测试工程师《以高效共享、复用、传承为目标的测试用例管理思路&工具实践》by 顾利萍,360 QTest 团队测试主管《基于AI的APP自动化测试》by 胡平,华为资深技术专家《性能解析:互联网银行项目实践和两则实际性能定位案例》by 高楼,北京千倍科技有限公司,7D Group 创始人《汽车之家新车电商精准测试解决方案》by 闻小龙,汽车之家高级测试开发工程师大会视频及 PPT 获取方式视频资料:识别上图二维码或者访问 TesterHome 社区https://testerhome.com/topics…大会 PPT: 请访问百度网盘链接: https://pan.baidu.com/s/1ca9r… ,提取码为【apvv】。MTSC2019 启动,热点议题征集中MTSC2019 大会购票地址:https://www.bagevent.com/even…MTSC2019 大会议题申请:topic@testerhome.comMTSC2019 大会商务赞助:bd@testerhome.com关于 MTSC 大会MTSC 中国移动互联网测试开发大会(Mobile Testing Summit China)是由国内最大的测试开发技术社区 TesterHome 主办的年度技术盛会,聚焦于软件测试及应用质量保障,邀请国内外顶级技术专家分享测试行业最前沿技术创新发展、业界工程最佳实践经验等。自 2015 年举办以来,近万名有从业经验的测试开发工程师、测试经理和质量管理人员参加了 MTSC 大会,好评如潮。MTSC2019 大会议题涵盖移动端测试、服务端测试、Web 测试、IoT 智能硬件、持续集成/持续交付、DevOps 等领域,以及大数据、人工智能 AI 技术在测试领域的应用。MTSC 大会从专家邀请到内容评审都严格把关,力求务实、能落地、有深度、高质量。很多一线互联网企业如腾讯、阿里、百度、美团、华为、小米、360 等公司都专门组织研讨会来学习分享 MTSC 大会内容。2019 测试行业技术栈有哪些创新发展?如何更好的落地自动化测试技术,提升质量管理效率?人工智能 AI 与测试技术结合会产生怎样的火花?物联网测试体系搭建有哪些注意事项?在经济寒冬和行业人才结构大变革的双重背景下,测试从业人员面临怎样的职业技能挑战?… 期待与你相约 MTSC2019 大会现场(6月28-29·北京国际会议中心),共同探讨精彩议题!更多信息,访问 MTSC2019 大会官网地址:https://testerhome.com/mtsc/2019 。 ...

January 27, 2019 · 1 min · jiezi

测试领域,小白问题大集合(适合未入门和入门初级者)

前言 大家好,这里是@IT·平头哥联盟,我是首席背锅官——松鼠,今天要分享的是最给一些还没入门的同学或需要提升的同学一些指引,详细说明自己这几年来经历怎么一步一步转型,给大家一个参考,希望可以少走些弯路写在最前:由IT平头哥联盟 - 测试同学整理!作者:首席背锅官∙松鼠交流群:912594095、公号:honeyBadger8,本文原创,著作权归作者所有,转载请注明原链接及出处。 这是@IT·平头哥联盟的第一篇测试文章,所以写篇针对小白迷茫或刚培训完入职后想提升迷茫不知道该怎么做的同学,我在15年的时候也培训过,也很清楚从培训或自学到入门转型的整个过程,也清楚工作后的提升过程. 说说整体计划,以后我们会分享自动化,性能,基于安全一些技术文章,会结合现在工作中所用到的技术来进行分享,目前工作中有用到jmeter做性能,rf,BDD(lettuce)做自动化,Appscan做安全,当然还有最基本的功能测试(黑盒).当然,有兴趣写博客的大牛,欢迎加入我们@IT·平头哥联盟一起写技术博客,一起带动大家学习进步,快乐你我他,欢迎投稿哦~ ~~~言归正传~~~引言很多小白会问的问题:我是做*外行的,跟IT没任何关联能做测试吗?做测试加班多吗?会不会很难呢?学历要求高吗?测试难还是开发难,哪个比较好入门,我应该转型哪个呢?我不知道要怎么自学,不知道要怎么入手,有种不知所措的感觉,是不是要培训呢?黑盒测试和白盒测试哪个工资高?我做测试应该要学哪个语言呢?java好还是python好?测试以后发展前景怎么样呢?我年纪大了,27,28,30岁了,做测试还来的及吗?我要是培训了,找不到工作,那岂不是亏了学费又浪费了时间?已转型做功能的同学可能会问:我功能做一年,两年了,还只会功能,我要怎么提升呢?整天工作点点点,想提升又不知道怎么做?我应该学那门语言呢?总感觉我工资提不上去了?反反复复,来来回回都是这些问题,这次我详细说说!仅仅个人观点提供参考!以下关于我的一小段转型历程~~~~~~ 这里简单说明我转型的经历,以前做的行业就不说了,跟IT一点关联都没有,哈… 三年前的某一天决定要转行到it行业,想转型到it的想法都是认识一个后台开发的小哥,健身房认识的,当时处于迷茫期的我只要认识一个朋友就会问些行业之类的话题,当然不是直接问了,毕竟有点不好,会先说自己不知道要做什么,然后再问他做的行业之类的. 当时他跟我说后台开发,那时的我并不知道后台开发是什么东西,他说些代码的,我回了什么是代码,哈哈哈,他也不知道怎么回答我. 后面他也说这行业工资会高点,当时我并没有很注意这个,因为对我来说都不知道是干什么的,也没去了解,是经过别的行业洗礼后才想到这小哥哥,然后就打电话问他这行业情况,再各种查资料,他最后给我的建议就是去培训,说我这情况只能培训,说了个机构叫我自己去了解,最后我就去很多家机构了解对比啥的,就报名了. 是的没错,直接报名了~~ 想都没想万一转型不成功会咋办的问题…. ,这里培训的是安卓开发,现在想想胆子也挺大的. 培训的过程很辛苦,4个月时间,现在想想都不知道怎么熬过去的.是不是很好奇为什么培训开发做测试呢?当时开发学完入职了一家公司两个月,一直加班好累,每天感觉头脑在冒烟,当时就一个想法,这生活不是我想要的,请原谅没出息的我! 然后就想转型测试. 转型测试一开始我在网上了解才知道测试分好多种,功能测试、自动化测试、性能测试、安全测试,当时就想怎么一个测试也有那么多种,还以为直接转很简单,网上看了那么多感觉都没接触过….,当时想法先用开发简历投测试试下,边投简历边自学,一直认为有开发的经验测试应该会很受欢迎,没想到一个电话都没有. 有开发经验测试领域很受欢迎这观点是没有错的,但是测试零经验就没有人要了.我记得当时投简历好几天有个电话叫我去面试,我问了下测试工资能给我多少,对方说最高8k,我回了相对我现在的工资差别有点多,我接受不了,然后就没去面试了. 这时候我也好好思考了,要顺利转型我是不是又要培训测试?这样我又要花费好多时间,金钱也要投入,当时松鼠我很穷,生活费都是刷信用卡和支付宝的网商贷里面拿出来的…..,我选择自学,当时我就辞掉这份工作了,然后网上买了一些测试的视频,整套完整的很便宜,视频看了两三天实在是看不下去,这时很清楚自己不适合自学,然后就去走了好多家机构进行对比,了解机构的过程还是挺逗的,很多机构以为我是小白老是要忽悠我,总是说那些什么小机构,不出名的机构怎么样没保障,找工作也没保障之类的,当时好想笑,找工作不就是简历给外包面试吗?有什么不保障的,又不是进自研.当时什么51,川石,泽林,怀谷(这个名字有点忘记了),有同学在泽林培训过,当时我也打算去了,还好群里遇到另一个机构去看了学费好便宜还是不贷款找到工作后再自觉给学费的,当时觉得好神奇,直接就定下来了,去那边租房学了两个月,有开发的基础学测试真的是太简单了,哈哈哈哈 ~~ 学完果然都在我的预算之中,顺利拿了很多的of.~~~~~~~以上是我的一个转型过程,比较麻烦,还花费很多的时间,不过到现在没后悔过~~~~~~~~问题观点:转行其实就是看一个字 —— 胆量!很多人转行都犹豫这犹豫那的,怕这做不了怕那做不了,我当时都没犹豫过这个,刷信用卡当时有个大胆的想法…就算我转行没成功这几千块钱的生活费我去餐厅洗碗也能还上…… 哈哈哈哈,现在想想还挺逗的it学历确实要求比较高,这是行业的硬性要求没办法,身边有很多高中毕业的,虽然也是高薪就业,但肯定是用了些办法进公司的,低学历首先肯定的是跟大公司无缘.这个要切记,现在本科以下自研的公司很难进,大专外包很容易,外包要求比较低不管以前你学习怎么样,测试这个绝对是能上手的,这点倒不用担心,因为测试太简单了(功能测试),至于自动化,性能都是要后续自己提升,这就看自己了还要注意一点:测试学习两个月就够了,开发学习起码要4个月(如果培训的话)自学的,测试给自己3个月时间,开发一般需要8个月左右,自学效率不高,能在这个时间内完成那是很了不起加班问题,太过于执着加班的人,可能真的有点不适合it,这行业不加班的公司还真的很少,不想加班的单位其实是有的,但你本身要有这条件,一般不怎么加班的公司比较多的领域就是银行单位(带编制岗位),金融行业的技术不加班的还是挺多的,当然加班的也不少,我所知道的金融公司不加班的比较多(这里不加班的概念是加班比较少),外包的话,像bat华为等类似大公司都是加班特别厉害的,身边有华为外包的真的是996上班形式的…..,还有一种公司不加班的,那就是外企年纪问题,年纪大了做it确实是有点不合适,这是个人观点.身边很多年纪在30+的才去培训,这个年纪培训有个点事你要学好点,因为你找工作这经验需要包装挺多的,要懂的比别人多,一个三十多岁总不能说才工作一两年吧,半路转行的很多公司不会要的,外包还是很好近的.年纪大也确实比较不好找工作,我们公司一般面试接到32以上的一般就不怎么会要了…..,个别公司吧!语言方面:现在测试领域java和python用的都比较多,python是一个趋势,现在测试很多都在转型python,测试方面这两个语言已经不相上下了,新人建议学python,因为python相对好入手点测试的前景,前景这个心态还挺重要的,首先你进入这行业,总不能一直只做功能不去提升吧,一辈子只做功能的话,那你的前景就真的很窄,不过功能做的好的话转产品那前景又扩大了一步,拿我自己来说吧!我到现在我都很担心自己哪天失业,所以只能经常看看书,视频来提升自己.也有计划转型产品但是感觉技术还不错,还想多做两年,当然只是一个计划而已.只要你技术好,就不用担心前景问题小白怎么入门?一般it入门方式也就三种,校招进入企业,自学和培训,转行的也只有自学和培训两条路,有能力自学的优势就是省了挺多钱的,培训就需要培训费和生活费,我个人不排斥培训,毕竟经历培训也都找到工作,工资也还好,个人建议找个便宜的机构培训. 原因:培训出来一半工资会比自学的工资高,假设自学6k,培训8k,那培训出来年薪就会多两万多,这两万多足够付这培训的费用了,最后还是赚了.需要注意的是,年纪太小,培训需要小心,年纪小培训工资都不会高到哪里的工作后要怎么提升呢? 工作后提升两种方式: 1.最快的就是利用公司项目提升 2.业余时间提升(看书,视频等),业余提升可以说是相当难,亲身体验的,因为工作后有点惰性,下班后就不想动了,哈哈哈.要是公司有需求做自动化参与什么的,提升是最快的.我提升的几乎都是公司需求自己摸索自己做的.业余都是担心做不出来查资料学习,只要有需求都会去补知识的.!> 我个人想到的目前是这些问题,还有其他问题的可以留言,我会一一回复的,当然有不懂的也可以问我,如果我会的问题,知无不言.也可以加群,在下方有群号,测试的加测试群,前端加前端,也可以加q9617 101 68写文章目的:一方面逼自己学习提升,一方面提升自己文采,还有最重要想积累下自己的名气,不然就不会辛辛苦苦写博客了,需要能帮助大家,来给我个赞吧!????下一步文章计划列表:用例设计方法详解mysql入门(测试必备技术)Linux入门(测试必备技术)什么是接口测试python-lettuce介绍基本安全测试知识python基础学习jmeter性能测试性能优化策略(难度较大)robotframwork 讲解接下去先写这些文章吧! 慢慢来,一个一个写,哈.感觉要好辛苦,留个言给个赞吧! 一个人可能记不住那么多,有漏的欢迎指点.有大牛要写博客的可以加入我们@IT·平头哥联盟,一起写博客!热门推荐如何规范化测试流程,看这篇就够了~小程序项目如何设置资源的防盗链~如何给localStorage设置一个有效期?作者:松鼠 - 首席背锅官原文链接:https://www.susouth.com/theor…交流群:912594095、公众号:honeyBadger8本文原创,著作权归作者所有。商业转载请联系@IT·平头哥联盟获得授权,非商业转载请注明原链接及出处。

December 3, 2018 · 1 min · jiezi