关于测试开发:软件测试人工智能熟练使用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