![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件测试
文章平均质量分 85
测试界清流
本人自动化测试和测试开发工程师,拥有丰富的自动化测试平台及测试开发经验,擅长接口测试、Python自动化全栈,测试开发平台等
展开
-
搞懂单元测试,集成测试,系统测试三者的区别
很多人经常把“黑盒测试、白盒测试、灰盒测试”和“单元测试,集成测试,系统测试,验收测试”搞在一起。其实这几个测试分类要区分清楚也很清楚。按照开发阶段划分,就是:单元测试,集成测试,系统测试,验收测试。按照代码的可见度划分,就是:白盒测试(没有界面,只看见代码)、黑盒测试(只有界面,看不见代码)、灰盒测试(既看不到界面,又不深入代码)。为什么这两类测试经常混在一起呢?原因是白盒测试是代码级的测试,也就是单元测试。黑盒测试,没有代码,只有界面测试,可认为是点点点的功能测试,这就是系统测试。原创 2024-07-22 13:44:06 · 545 阅读 · 0 评论 -
2024年全网最全最细最流行的自动化测试工具有哪些?
随着测试工程师技能和工资待遇的提升,甚至有一部分的开发人员开始转入测试岗位,跨入自动化领域的测试攻城狮越来越多。在自动化测试领域,自动化工具肯定占据了核心的位置。本文总结了常用的测试自动化工具和框架,这些工具和框架有助于更好地定位自己,以跟上软件测试的发展趋势。原创 2024-07-21 14:32:20 · 806 阅读 · 0 评论 -
Jmeter分布式测试的注意事项和常见问题
Jmeter是一款开源的性能测试工具,使用Jmeter进行分布式测试时,也需要注意一些细节和问题,否则可能会影响测试结果的准确性和可靠性。原创 2024-07-21 14:31:16 · 712 阅读 · 0 评论 -
测试用例写给谁看?
为什么要编写测试用例,测试用例写给谁看”,这个问题看似简单,但却涵盖了一系列复杂的考虑因素,并不太好回答。为了向各位学测试的同学们解释清楚“为什么编写测试用例是至关重要的”,我将通过以下5个方面进行展开:1、为什么要写测试用例?2、测试用例写给谁看?3、测试用例使用案例分享4、测试用例在测试工作中的地位分享5、测试用例学习资源分享好,现在我们开始。原创 2024-07-19 15:16:31 · 454 阅读 · 0 评论 -
【Jmeter】【postman】【python】 三大主流技术如何操作数据库?
功能测试中,涉及数据展示功能,需查库校验数据正确及完整性;例如商品搜索功能自动化测试或性能测试中,某些接口要跑通,需要关联到数据库操作;例如注册接口中短信验证码获取自动化测试中断言处理,除了响应结果的断言,还包括到数据库断言自动化测试或性能测试中,某些场景需批量造数据,可能需要用到数据库造数据测试中,发现bug,需定位bug,可能需要查询到数据库进行定位。原创 2024-07-19 15:14:30 · 1118 阅读 · 0 评论 -
2024最新接口自动化测试面试题
3)GET产生一个TCP数据包(对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200返回数据),POST产生两个TCP数据包(对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok返回数据)本题主要考情商,通俗来说就是忽悠能力,先唬住面试官了再说,进去了也是瞎测测,随时做好背锅的准备,当然,你肯定不能回答面试官不测(心理mmp,脸上笑嘻嘻),接下来就是扯犊子时间。原创 2024-07-18 13:34:34 · 838 阅读 · 0 评论 -
【自动化测试】Airtest-Selenium和Excel的无缝协作
之前在问卷以及Q群上有同学有提出过能否将网页上的一些数据通过Airtest去导出生成一份Excel,那么我们今天一起讨论一下,我们应该如何去实现,以及当我们获取的数据类型不同的时候,获取的方式该怎么随之调整?之前我们有篇文章有介绍过,在这里我们是使用了创建Excel,写入并保存Excel的操作。# 创建一个新的Excel工作簿和工作表#将内容写入Excel内# 保存Excel文件wb.close()原创 2024-07-18 13:33:17 · 225 阅读 · 0 评论 -
【整洁单元测试】测试气味Test Smells
硬编码测试数据、剪切和粘贴、使用 "test "+方法名称(或 "test1"、"test2"、"test3")作为测试名称,这些做法在短期内稍显简单,但却使测试库更难维护。这里还有一件事值得思考:自动化测试很好,因为你可以用很少的成本重复测试,但这也意味着随着时间的推移,它们的有效性会下降,因为你只是在重复测试完全相同的东西。你可以推断出一些,但想象一下,这只是测试运行中失败的几十个测试中的一个(在几千个测试的测试套件中完全有可能)。也就是说,当您阅读测试时,数据之间的关系应该是显而易见的。原创 2024-07-16 14:12:41 · 510 阅读 · 0 评论 -
Python自动化测试框架unittest与pytest的区别
以上就是unittest与pytest测试框架的区别,七大主要区别,这里已讲了两个区别的实例,其他五个有时间再补充,如对python自动化测试感兴趣的朋友,可以加入左下方学习交流群,讨论交流一下心得。原创 2024-07-05 17:23:05 · 943 阅读 · 0 评论 -
一份适合新手的软件测试练习项目
最近,不少读者托我找一个能实际练手的测试项目。开始,我觉得这是很简单的一件事,但当我付诸行动时,却发现,要找到一个对新手友好的练手项目,着实困难。我翻了不下一百个web网页,包括之前推荐练手的政府网站(普遍会有bug),但依旧没能找到合适的。最后,在我苦苦的搜寻过程中,发现了一个适合练手的web网页,因此推荐给还是测试新手的你。原创 2024-07-05 17:20:14 · 330 阅读 · 0 评论 -
JMETER与它的组件们
说到并发绕不开的就是并行:并发其实就是任务切换,而并行就是多个进程同时进行,Jmeter也提供了并发插件这里不做赘述,有兴趣的可以去插件管理内自己下载:Parallel Controller。我们在for循环下面增加if控制器去判断是否满足我们需要的条件,if下面增加一个动作控制器,如果满足if条件就Break,跳出循环。可以理解做了一个挡板,把我们自己当做服务器,把我们自己收到的请求原封不动的显示出来,方便调试请求。第二种:有条件的筛选name=A的age,使用表达式:[?原创 2024-02-29 21:59:13 · 1164 阅读 · 0 评论 -
大厂性能测试监控指标及分析调优指南
其次是空间换取时间,用存储空间提升访问速度,典型的就是MySQL的分库分表策略,MySQL表单数据存储千万以上的时候,读写性能就会下降,这个时候我们可以将数据进行拆分,以达到查询的时候,每个表的数据是少量的,以达到提升性能的目的。其次是横向扩容,当访问量超过某一个阈值时,系统可以自动横向增加服务。其次,JVM调优,设置合理的JVM内存空间,以及垃圾回收算法来提高性能,例如,如果业务逻辑会创建大对象,我们就可以设置,将大的对象直接放到老年代中,这样可以减少年轻代频发发生YongGC,减少CPU的占用时间。原创 2024-02-26 15:19:15 · 1120 阅读 · 0 评论 -
Airtest-Selenium实操小课③:下载可爱猫猫图片
那么这周我们看看如何实现使用Airtest-Selenium实现自动搜索下载可爱的猫猫图片吧~原创 2024-02-23 19:08:22 · 1166 阅读 · 0 评论 -
什么是接口测试?为什么要做接口测试?
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。由于如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,所以就要做接口测试。同时,接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。原创 2024-02-21 20:59:06 · 1327 阅读 · 0 评论 -
接口测试常用测试点
默认值测试: 很多情况一些非必填的参数会有默认值,比如说一个查询的接口,参数count为返回查询的结果数量, 默认为10,那么就应该有一条case来测试,当然前置条件是数据库里面必须要存在这样的数据超过10条。多或少参数:多或者少参数的验证,现在还不确定如果一个接口多了参数如果没有报错是否是合理的,或者是否需要优化,因为就目前开发给予的答案是,一般不对接口多了参数的处理。错误码测试: 通用的错误码与业务错误码是否能够清晰的说明调用问题,错误码是否能够尽可能的全的覆盖所有的情况。原创 2024-02-20 19:49:28 · 570 阅读 · 0 评论 -
五分钟快速了解软件测试是干什么的
1、 软件测试的定义软件测试是使用人工操作(即手动测试)或者软件自动运行的方式(即自动化测试)来检验它是否满足规定的用户需求或弄清预期结果与实际结果之间的差别的过程。通俗来讲,是为了发现错误而执行程序的过程。2、软件测试的目的证明程序的正确性,检察系统是否满足用户需求,发现bug,证明程序有错。3、软件测试在软件生命周期中的哪个阶段在软件生命周期中大致分为六大阶段:项目规划、需求分析、软件设计、程序编码、软件测试、运行维护。角色:测试员。原创 2024-02-19 16:48:49 · 1035 阅读 · 0 评论 -
JMeter 源码解读HashTree
如果兼容,将该节点添加到结果列表中,并创建一个新的 ListedHashTree 对象,将该节点作为根节点,并将其对应的子树添加到新创建的 ListedHashTree 中。这样的设计提供了更好的扩展性,允许在不修改 HashTree 的情况下定义新的操作,并且可以根据需要将这些操作应用于 HashTree 中的元素。在 JMeter 中,HashTreeTraverser 类是用于遍历 HashTree 的工具类,它提供了一种简单的方式来访问和处理 HashTree 中的节点和子节点。原创 2024-01-16 15:11:31 · 770 阅读 · 0 评论 -
Airtest-Selenium实操小课
上一课我们讲到用Airtest-Selenium爬取网站上我们需要的信息数据,还没看的同学可以戳这里看看~原创 2024-01-11 15:54:27 · 1336 阅读 · 0 评论 -
Python接口自动化测试项目实战
把请求头信息进行处理,去掉一些没用的,保留一些有用头信息。# 发送get请求# 查看响应内容,response.text 返回的是Unicode格式的数据# 查看响应码。原创 2024-01-10 15:59:23 · 1480 阅读 · 0 评论 -
【性能测试】JMeter分布式测试及其详细步骤
如果你想要开源易用的,那JMeter是一个不错的选择。Controller我放在Mac上跑,Workers我是通过两台Ubuntu服务器来跑,要注意它们的IP是在同一内网上的。性能测试是软件测试中的一种,它可以衡量系统的稳定性、扩展性、可靠性、速度和资源使用。Worker的默认端口是1099,但它是可以改变的,有些时候也必须改变,如设置的防火墙,或者需要在同一台Server启动多个Worker。Worker可以在不同的服务器上,所以叫分布式,也因此可以利用多台电脑的资源来模拟足够的请求。原创 2024-01-08 13:20:25 · 1649 阅读 · 0 评论 -
Python+Requests+PyTest+Excel+Allure 接口自动化测试实战
需要用到@pytest.mark.parametrize()装饰器进行封装用例,调用getExceldatas()将读取出来的用例存放进装饰器,"data"为别名。如下图,分别请求头和参数做了为空判断,并将token插入到headers里面,这样每一个接口都能使用到登录返回的token,不用每次都去调用获取token。原创 2024-01-05 16:46:24 · 1430 阅读 · 0 评论 -
为何Selenium这么火?
Jason Huggins 于 2004 年创建了一个 JavaScript 框架,旨在将其从重复的手动测试中解放出来。最初命名为 JavaScriptTestRunner 的产品可以直接在浏览器中执行测试,驱动页面上的交互,并在无需手动输入的情况下重新运行。这个 JavaScript 工具在 Huggins 意识到它的潜力后开始流行,将其开源并重新命名为 Selenium Remote Control。Selenium 的创新之处在于:之前没有其他任何工具允许测试人员使用他们选择的编程语言与浏览器对话。原创 2024-01-04 16:05:18 · 518 阅读 · 0 评论 -
零基础一看就会?Python实现性能自动化测试竟然如此简单
性能系统负载能力超负荷运行下的稳定性系统瓶颈自动化测试使用程序代替手工提升测试效率性能自动化使用代码模拟大批量用户让用户并发请求多页面多用户并发请求采集参数,统计系统负载能力生成报告locust做压测功能极其强大支持分布式部署提供的接口简单压测代码非常容易编写提供UI界面来配置美观、详细的图表统计【性能测试】终于有一套全面的性能测试教程啦!真实企业性能测试全流程项目实战!原创 2023-12-10 21:22:02 · 195 阅读 · 0 评论 -
2024最新金三银四软件测试面试题
而处理的方式基本都是“先测客户比较关心的,比较常用的功能”,保证通过客户验收,拿到项目款。简单的例子,就是支付,用户购买商品使用支付,支付扣款成功,但是返回结果的时候网络异常,此事钱已经扣了,用户再次点击,此时会产生二次扣款,结果返回成功,用户查询余额返现多扣钱了。具体地说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。新旧版本具有相同的包名;原创 2023-12-08 20:48:17 · 504 阅读 · 0 评论 -
Jmeter组件执行顺序与作用域
定时器会让作用域内的每一个采样器都在执行前等待一个固定时长,如果不设定这种延迟,JMeter可能会在短时间内产生大量访问请求,导致服务器被大量请求所淹没。前置处理器通常用于在采样器发出请求前修改采样器的某些设置,或者更新某些变量的值(这些变量不在服务器响应中获取值)。采样器会按照其在测试树中的顺序去执行,还可以用逻辑控制器来改变采样器运行的重复次数。配置元件大其作用域的初始阶段处理,配置元件仅对其所在的测试树分支有效,如,在同一个作用域的任何采样器前。逻辑控制器可以改变其子测试元件的请求执行顺序。原创 2023-12-08 20:30:38 · 365 阅读 · 0 评论 -
Jmeter接口测试
3、引入Jmeter日志包:jorphan.jar,logkit-2.0.jar,commons-logging-1.1.1.jar,avalon-framework-4.1.4.jar。④、setSuccessful(true、false) 设置运行结果的成功或失败,Jmeter统计成功失败的次数,在聚合报告中能够体现。②、sampleStart() 定义事务的开始,类似于LR的lr_start_transaction,和LR一样事务间不要放无关代码。() 用于获取界面的参数。原创 2023-12-07 21:32:04 · 112 阅读 · 0 评论 -
接口测试方向
其实上面这几点,只有最后一点说的是比较靠谱的,第一点post请求也可以把数据放到url里面,get请求其实也没长度限制,post请求看起来参数是隐式的,稍微安全那么一些些,但是那只是对于小白用户来说的,就算post请求,你通过抓包也是可以抓到参数的。webservice接口怎么测试呢,他不需要你在拼报文了,会给一个webservice的地址,或者wsdl文件,直接在soapui导入,就可以看到这个webservice里面的所有接口,也有报文,直接填入参数调用,看返回结果就可以了。原创 2023-12-07 21:17:09 · 182 阅读 · 0 评论 -
软件测试项目实战
软件测试是使用人工或者自动的手段来运行或者测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。在软件投入使用前,要经过一系列的严格测试,才能保证交付质量。原创 2023-12-06 19:48:34 · 449 阅读 · 0 评论 -
性能测试必备基础知识
网卡接收到数据包后,会通过硬件中断的方式,通知内核有新的数据到了。在中断处理程序中,应用程序可以执行特定的操作,比如弹出一个消息通知,显示新消息的内容。它可以把进程暂时不用的数据存储到磁盘中(这个过程称为换出),当进程访问这些内存时,再从磁盘读取这些数据到内存中(这个过程称为换入)。每个进程都有自己的虚拟地址空间,它是一个抽象的地址空间,与实际的物理内存地址是分离的。当将文件内容映射到进程的地址空间时,操作系统会将文件的内容映射到一段虚拟地址空间,这样进程就可以通过读写这些虚拟地址来实现对文件的访问。原创 2023-12-06 19:33:31 · 129 阅读 · 0 评论 -
软件测试,缺少项目实战怎么办?
01 实战机会很多,只是你没找到适合自己的方法;02 完整地走完我说的和你要思考的,这些都是能写进你的转行简历里面的。原创 2023-12-05 19:19:01 · 186 阅读 · 0 评论 -
【性能测试】LR录制回放&事务&检查点
上一次推文我们分享了性能测试分类和应用领域,今天带大家学习性能测试工作原理、事务、检查点!后续文章都会系统分享干货,带大家从0到1学会性能测试,另外还有教程等同步资料,文末免费获取~01、LR工作原理通常我们认为LoadRunner是由三部分组成:VuGen、Controller、AnalysisVuGen:录制与增强脚本的地方,即将我们的操作行为变成代码;Controller:模拟多用户执行脚本,相当于模拟多用户口对服务器进行操作;原创 2023-12-05 15:35:07 · 171 阅读 · 0 评论 -
软件测试【理论基础】
缺陷的二八定理指的是,一般情况下,80%软件缺陷出现在20%的功能区域,在测试过程中,投入主要的人力和精力重点测试这20%的功能区域。设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件的所有可能取值至少执行一次,并且每个可能的判断结果也至少执行一次,换句话说,即是要求各个判断的所有可能的条件取值组合至少执行一次;① 测试工作将进一步前移。为了便于缺陷的定位、跟踪和修改,要对所发现的缺陷,按照缺陷的严重程度、优先级、发现阶段、修复阶段、缺陷的性质、所属功能模块、系统环境等方面进行分类和统计。原创 2023-12-04 19:59:39 · 257 阅读 · 0 评论 -
接口测试很难?1分钟带你入门接口自动化测试
答案显然不是的,有的用户只能查看的权限但无创建权限。接口是连接前台和后台的桥梁,前台通过接口调用后端已完成的功能,而无需关注内部的实现细节。比如接口调用的使用的关键字是username,文档中写的确实usernmae,这是肯定不行的。在接口测试的时候可以使用错误的token,或已过期的Token下发创建集群的请求并观察服务端的响应。Fiddler:可以抓取接口信息,也可以进行接口测试,自动回复,mock等,很强大。接口的实现是否与接口文档一致。答:主要从功能,业务逻辑,安全,异常,接口文档等方面入手。原创 2023-12-04 17:05:10 · 199 阅读 · 0 评论 -
Jmeter分布式压测
其中172.16.6.90和172.16.6.90为Slave机的IP,每个Agent机之间用英文半角逗号隔开,修改保存。注意默认端口都为1099。Jmeter 支持分布式压测,将需要模拟的大量并发用户数分发到多台压力机,使 Jmeter 拥有更大的负载量,满足真实业务场景(高并发场景)但是单机无法支撑数以万计大并发,此时,需要多个压力机进行分布式压力测试,这样性能瓶颈就不会是我们的压力机了。可以选择远程启动一个Slave机,或者选择远程全部启动,即可进行分布式测试了。,并且去掉#,否则会报错误。原创 2023-12-01 19:31:56 · 184 阅读 · 0 评论 -
软件测试面试最全八股文
状态迁移法是对一个状态在给定的条件内能够产生需要的状态变化,有没有出现不可达的状态和非法的状态,状态迁移法是设计足够的用例达到对系统状态的覆盖、状态、条件组合、状态迁移路径的覆盖。输出域分析法是对输出域进行等价类和边界值分析,确定是要覆盖的输出域样点,反推得到应该输入的输入值,从而构造出测试用例,他的目的是为了达到输出域的等价类和边界值覆盖。• 缺陷洞察能力,一般缺陷的发现能力、隐性问题的发现能力、发现连带问题的能力、发现问题隐患的能力、尽早发现问题的能力、发现问题根源的能力;原创 2023-11-30 19:16:36 · 802 阅读 · 0 评论 -
Python常用Pytest自动化测试框架
下面我们首先来简单介绍Pytest及相关内容下面我们来简单介绍Pytest框架:pytest是一个非常成熟的单元测试框架,经过多版本的迭代,主要优点在于灵活和简单pytest具有极强的兼容性和生态环境,它可以结合selenium,requests,appium完成各种不同的自动化pytest具有更好的页面展示效果,它可以生成自定义allure报告以及和Jenkins持续集成pytestpytest-html:主要用来生成html报告的插件pytest-xdist:主要用来进行多线程运行的插件。原创 2023-11-13 20:38:15 · 415 阅读 · 0 评论 -
通过Fiddler肆意修改接口返回数据进行测试
在测试的过程中,有的需求是这样的,它需要你修改接口返回的数据,从而检查在客户端手机app内是否显示正确,这也算是一种接口容错测试,接口容错测试属于app性能(专项)测试的其中一种。通过Fiddler我们可以有好几种方法修改返回结果:第一种:在Fiddler底部的黑色命令行显示区域通过bpu url的形式按回车之后进行拦截,通过手机app访问指定接口,拦截到后可以选择response文件后通过拦截;原创 2023-11-10 19:53:13 · 314 阅读 · 0 评论 -
刚接触银行新业务测试的一些问题
在银行金融领域的测试工作,相信很多测试工程师都会遇到自己不熟悉的业务。然后开始看文档,问开发或者需求人员。搞懂了大概的流程,然后开始进行测试。不过遇到复杂的业务情况时,真的很需要时间去梳理。而且测试环境的配置问题、不同银行间系统的流转配合等,都会使得原本很少的测试时间就显得更少了。所以在真正投入测试阶段之前一定要熟悉好相应的业务。就拿我最近遇到的银承兑票来说吧。首先遇到这个业务,对于没做过的人来说。都是全新的。完全不懂。先了解大概的业务,直接在网上查询。原创 2023-11-09 19:24:46 · 119 阅读 · 0 评论 -
接口测试总结
但是,前端的输入输出很多时候都是提供固守的值让用户选择(如下拉框),在这种情况下测试的边界范围就非常有限,但接口测试就不存在这方面的限制,相对来说接口可以覆盖的范围更广,同样的,接口出现问题的概率也更高。于是,为了向开发解释上述问题,普及基本的测试常识,特意梳理了接口测试的相关内容以及其与前端测试的区别,使开发团队与测试团队在测试这件上达成基本的共识,提高团队协作效率,从而更好的保证产品质量。除此之外,针对各自特性的测试都不一样,需要分别进行有针对性的测试,才能确保整个产品的质量。并没有解释为什么要做?原创 2023-11-07 20:26:03 · 376 阅读 · 0 评论 -
postman做接口自动化测试
/ 如果是Pre-request Script里生成的环境变量,直接写进请求参数,不用经这里 [ {"mobile": "17000000001", "pwd": "123456"}, {"mobile": "17000000002", "pwd": "654321"}, {"mobile": "17000000003", "pwd": ""}, {"mobile": "{{ADMIN_MOBILE}}", "pwd": "{{ADMIN_PWD}}"} ]// 推荐用全等 ===,确保类型和值都一致。原创 2023-11-06 19:24:36 · 634 阅读 · 0 评论