软件测试
文章平均质量分 82
软件测试凡哥
测试八年,我秃了可我也变强了
展开
-
面试官:性能测试瓶颈调优你是真的会吗?
在故障定位(尤其是 out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题。这些文件记录了 JVM 运行期间的内存占用、线程执行等情况,这就是我们常说的 dump 文件。常用的有 heap dump 和 thread dump(也叫 javacore,或 java dump)。heap dump 记录内存信息的,thread dump 是记录 CPU 信息的。当发现应用内存溢出或长时间使用内存很高的情况下,通过内存 dump 进行分析可找到原因。原创 2023-12-10 21:55:25 · 1042 阅读 · 0 评论 -
软件测试用例设计方法-因果图法
1、原因:指输入条件或输入条件的等价类 结果:指输出条件,给每一个原因和结果赋予一个标识符 2、分析程序规格说明书中的描述,确定原因与原因,原因与结果之间的关系,画出因果图;但是,有时候不能直接通过原因得到结果,需要借助中间状态,随着原因、结果不断增多,唯有依赖因果图才能更好地梳理个中关系。其次关于原因与结果,各个原因可以直达结果,或者分数与老师是否确认进行两两组合,形成中间状态,再到达结果。需要特别说明的是,因果图相当于特殊的场景法,是判定表的搭档。因果图法,第一时间让我联想到的是,高中数学的排列组合。原创 2023-10-18 20:17:31 · 310 阅读 · 0 评论 -
软件测试全套教程,软件测试自学线路图
本文从一个简单的登录接口测试入手,一步步调整优化接口调用姿势,然后简单讨论了一下接口测试框架的要点,最后介绍了一下我们目前正在使用的接口测试框架pithy。期望读者可以通过本文对接口自动化测试有一个大致的了解。pithy意为简洁有力的,意在简化自动化接口测试,提高测试效率一键生成测试项目http client封装thrift接口封装简化配置文件使用优化JSON、日期等工具使用编写测试用例推荐使用pytest,pytest提供了很多测试工具以及插件,可以满足大部分测试需求。原创 2023-10-18 20:17:39 · 297 阅读 · 0 评论 -
自动化测试框架指南
在任何行业中,自动化通常被解释为自动处理流程,而这些流程几乎不需要人工干预。在软件行业,测试自动化意味着使用许可版本或开源的自动化工具对软件应用程序执行各种测试。用技术术语来说,测试自动化框架是一组定制的交互式组件,它们有助于执行脚本化测试和全面报告测试的结果。为了成功构建自动化框架,必须考虑软件质量保证专家的建议,这些建议将帮助控制和监视整个测试过程并提高结果的准确性。经过仔细改进的自动化框架允许测试人员以实用、简化的方式执行自动化测试。原创 2023-10-17 20:58:48 · 214 阅读 · 0 评论 -
成功实施自动化测试的优点
自动化测试是使用自动化工具来对应用软件执行测试用例和检验响应功能是否符合产品设计的过程。测试工具获取实际结果,并将其与预期结果进行比较,以生成详细的测试报告。原创 2023-10-17 20:58:00 · 181 阅读 · 0 评论 -
Jmeter组件作用域及执行顺序
配置元件(Config Elemnet)-->用户自定义变量组件(User Defined Variables):这个组件不管放在哪个位置,它定义的变量都会被整个线程所共享。5–后置处理器(Post Processors,只在有结果可用情况下执行)6–断言(Assertions,只在有结果可用情况下执行)7–监听器(Listener,只在有结果可用情况下执行)2–前置处理器(Pre Processors)1–配置元件(Config Element)4–取样器(sampler)3–定时器(Timer)原创 2023-10-16 21:34:09 · 436 阅读 · 1 评论 -
Apipost连接数据库详解
目前的Apipost支持:Mysql、SQL Sever、Oracle、Clickhouse、达梦数据库、PostgreSQL、Redis、MongoDB 8种数据库的连接操作。实例演示:这里我们创建一个变量名为 userid 的环境变量,从JSON 数组中获取第一条记录中的 user_id 字段,那JSONPath表达式为 $[0].user_id。开启控制台打印结果后可以在控制台查看sql语句的执行结果,可以根据控制台返回结果来使用JSONpath表达式获取变量值。原创 2023-10-16 21:33:24 · 502 阅读 · 0 评论 -
测试中Android与IOS分别关注的点
主要从本身系统的不同点、系统造成的不同点、和注意的测试点做总结。原创 2023-10-15 22:02:34 · 873 阅读 · 0 评论 -
使用WebDriver采样器将JMeter与Selenium集成
在 Options-->Jmeter Plugins Manager 打开插件管理,切换到 Available Plugins 下,搜索 webdriver 并且勾选 Selenium/WebDriver Support ,点击右下角 Apply Changes and Restart JMeter,应该改变并且重启JMeter。2、使用WebDriver采样器时,每个线程将只有一个浏览器实例,并且每个浏览器都消耗大量资源。添加配置元素 - jp@gc - Chrome Driver Config。原创 2023-10-15 22:00:18 · 1044 阅读 · 1 评论 -
以命令行形式执行Postman脚本(使用Newman)
newman run S9.postman_collection.json -e ../env/PRE_ENV.postman_environment.json --folder 菜单 -r htmlextra,json --reporter-htmlextra-export ../reports/test_file_02.html --reporter-json-export ../reports/test_file_02.json。当脚本存在参数化文件时,我们可以通过-d参数来指定参数化文件的路径。原创 2023-10-13 21:42:26 · 451 阅读 · 0 评论 -
App自动化测试环境搭建
只做记录和注意点,详细内容不做解释需要用到的工具:1.java JDK2. node.js6.appium客户端7.夜神安卓模拟器下载安装完成后,配置环境变量。在环境变量中新建JAVA_HOME,对应的变量值为jdk的目录再新建一个变量名CLASSPATH的环境变量,变量值为:%JAVA_HOME%\lib\tools.jar;在Path变量增加:%JAVA_HOME%;命令行模式验证:java -version。原创 2023-10-13 21:17:23 · 281 阅读 · 0 评论 -
Newman基本使用
Newman 是 Postman 推出的一个 nodejs 库,直接来说就是 Postman 的json文件可以在命令行执行的插件。Newman 可以方便地运行和测试集合,并用之构造接口自动化测试和持续集成。原创 2023-10-12 17:10:52 · 961 阅读 · 0 评论 -
Jenkins 结合 ANT 发送测试报告
点击 ManageJenkins进入Jenkins 管理点击 Global Tool Configuration 进入全局变量配置配置 Ant ,Name 自己定义一个比较好理解的名称。去掉 Install automatically 勾选,会出现填写Ant 路径的输入框。在定义的名称后面填写服务器存储 Ant的路径。如果没用安装过 Ant 则勾选Install automatically ,Jenkins 会自动安装 Ant。配置 Java JDK。配置方法和 Ant 相同。原创 2023-10-11 19:12:24 · 1032 阅读 · 0 评论 -
JMeter—逻辑控制器
可以通过模块控制器在当前测试计划中引入新的测试片段(也叫脚本片段,由控制器、取样器及辅助元件构成,鞥能够完成负载的模拟)。输入变量前缀:可以在“用户自定义的变量”中定义一组变量,控制器可以从中获取到变量对应的值,然后作为循环控制器的循环条件,还可以输出变量作为取样器的参数。JMeter逻辑控制器可以对元件的执行逻辑进行控制,除仅一次控制器外,其他可以嵌套别的种类的逻辑控制器。如果事务控制器下的取样器有多个,只有当所有的取样器都运行成功,整个事务控制器定义的事物才算成功。如果不选择则默认执行所有的虚拟用户。原创 2023-10-10 17:30:21 · 1062 阅读 · 0 评论 -
jmeter使用csv进行参数化及(运行后出现乱码错误解决)
ctr+f查找ISO-8859-1,会查找到好多内容,找到sampleresult.default.encoding=ISO-8859-1这句话。将文档保存到固定位置,获取文档的路径。变量名称指的是变量指代的内容,每一列之间用逗号隔开。步骤1中保存的变量用逗号隔开,这儿设置变量名时一样用逗号隔开。察看结果树中选择以browser的形式查看ui界面,依次察看可以看到结果是依次从步骤1中的文档内容依次读取。比如:符号+大括号变量名。如下图,取消注释号#,并且将ISO-8859-1编码改为utf-8,保存退出。原创 2023-10-09 17:21:04 · 1990 阅读 · 1 评论 -
jmeter利用自身代理录制脚本
在利用代理录制脚本时一定要安装java jdk,不然不能录制的。没有安装过java jdk安装jmeter后打开时会提示安装jdk,但是mac系统中直接打开提示安装jdk页面后下载的java并不是jdk(windows中没有试验过,笔者所说的基本全部指的是在mac系统中操作的)。所以要自己去官网下载适合jmeter版本对应的jdk版本。笔者用的jmeter4.0。安装的java jdk为8版本。官方说明的是需要jdk8或9版本。原创 2023-10-08 14:05:58 · 703 阅读 · 0 评论 -
jmeter添加断言(详细图解)
设置响应断言:正常情况下响应代码是200。选择响应代码,匹配模式选择equals。点击添加,输入内容200。将结果设置为201时,报错:接收到的是200,而预期的是201。为了方便观察,我们添加两个监听器,察看结果树和断言结果。添加断言:响应断言,响应断言也是比较常用的一个断言。会发现,结果为红色,响应的结果中响应码为200。先创建一个线程组,再创建一个http请求。之前设置的响应结果为200时,没有报错。之后我会在评论区挨个私信发给你们~结果为绿色,说明通过。原创 2023-10-07 15:23:24 · 2133 阅读 · 0 评论 -
初识jmeter及简单使用
ramp-up period是完成上面设置线程数所用的时间,则每一个线程数耗用的时间就为,设置的时间除以线程数;循环次数为设置的时间和线程数循环执行多少次,如果选择永远则手动输入的次数不能输入,也就是永远的循环执行下去,直到自己手动点击停止执行。执行后可选择执行后的结果进行取样器结果、请求、相应数据的察看。一般步骤是:在测试计划下面新建一个线程组,线程组下面添加请求,请求中添加结果和断言。很重要的几个参数:线程数、ramp-up period、循环次数。结果是执行的时候保存执行后的结果。原创 2023-10-06 15:35:13 · 936 阅读 · 0 评论 -
Jmeter分布式压力测试
在master机器的 Jmeter的bin目录下,修改jmeter.properties文件下的remote_hosts项,添加IP和port,多台slave的情况下,使用逗号(,)进行分割。在slave机器的 Jmeter的bin目录下,修改jmeter.properties文件下的server_port和server.rmi.localport两个配置项。注意:如果jmeter已经启动,修改jmeter.properties文件后需要重启jmeter配置项才可以生效。可以使用ping命令进行检查。原创 2023-09-28 16:02:03 · 3208 阅读 · 2 评论 -
自动化测试-友好的第三方库
自动化测试脚本开发中,总是会遇到各种数据处理,例如MOCK、URL处理、JSON数据处理、结果断言等,也会遇到所采用的测试框架不能满足当前需求,这些问题都需要我们自己动手解决。在强大的IT世界,我们遇到的百分之九十八问题,前辈们都遇到过并且给出了解决方案,有的无私前辈将其整理并开源,这些开源项目非常方便地辅助我们的自动化测试项目更好地进行,非常值得敬佩。下面介绍一些自动化测试项目中经常会使用到且非常友好的Python第三方库。原创 2023-09-27 21:00:54 · 329 阅读 · 0 评论 -
接口自动化测试思路和实战(4):数据驱动测试框架
在这里测试的输入和输出数据是从数据文件中读取(数据池,ODBC源,CSV文件,EXCEL文件,Json文件,Yaml文件,ADO对象等)并且通过捕获工具生成或者手工生成的代码脚本被载入到变量中。在这个框架中,变量不仅被用来存放输入值还被用来存放输出的验证值。Run_api_tests.py中生成了token值给ini配置文件,然后测试获取 token接口时,又调用生成了token值,为了防止后面生成值覆盖前面的值而导致ini配置文件失效,所以测试获取token接口要换不同的账号(appid和secret)原创 2023-09-26 15:18:17 · 204 阅读 · 0 评论 -
接口自动化测试思路和实战(3):测试库框架
与模块化测试脚本框架很类似,并且具有同样的优点。不同的是测试库框架把待测应用程序分解为过程和函数而不是脚本(而测试脚本中只是包含调用函数的用例即可)。这个框架需要创建描述模块、片断以及待测应用程序的功能库文件。场景: 在模块化框架中,我们发现常用的获取 token过程由于调用频繁,经常改动导致不好维护,所以做成一个函数进行调用,而其它所有的接口都可能会进行变更;原创 2023-09-25 15:35:24 · 244 阅读 · 0 评论 -
接口自动化测试思路和实战(2):模块化测试脚本框架
开发把 access_token接口地址由/cgi-bin/token 改为/cgi-bin/get_token或者修改参数等 ==》开发把常用的接口信息调整了;注:通过以上的用例层执行的时候,每个用例都要获取一次access_token,其实access_token每次获取后有效期是2个小时,后面解决。需要创建独立的可描述的模块、程序片断以及待测试应用程序的脚本。这些小脚本进行组合,就能组成用来独立运行特定的测试的测试用例脚本。上述代码的好处:1、降低代码的冗余;原创 2023-09-24 16:04:57 · 137 阅读 · 0 评论 -
接口自动化测试思路和实战(1):编写线性测试脚本实战
测试工程师应用自动化测试框架的目的: 增强测试脚本的可维护性、易用性(降低公司自动化培训成本,让公司的测试工程师都可以开展自动化测试)。原创 2023-09-22 17:10:23 · 587 阅读 · 1 评论 -
精准测试(针对人工执行的测试用例和自动化测试脚本)
很难保障无漏测:我们做了大量测试,但不清楚测得怎样,对软件上线后会不会出问题,没有信心;选择待执行的测试用例:面对大量的回归测试用例时,我们没有足够的时间完成测试,如何选择出有效的测试用例呢?虽然我们会有一些策略,如基于风险的测试策略、基于操作剖面的测试策略 或组合测试策略,但主要还是靠测试人员的经验,比较主观。原创 2023-09-21 16:52:08 · 2126 阅读 · 15 评论 -
使用 Sahi 实现 Web 自动化测试
Sahi 是 Tyto Software 旗下的一个基于业务的开源 Web 应用自动化测试工具Sahi 运行为一个代理服务器,并通过注入 JavaScript 来访问 Web 页面中的元素。Sahi 支持 HTTPS 并且独立于 Web 站点,简单小巧却功能强大。它相对于 Selenium 等自动化测试工具,在动态 ID 元素查找和隐式页面等待处理等方面具有一定的优势。选择 Sahi 工具来实现具体 Web 项目的自动化测试是一个很不错的选择。原创 2023-09-20 17:19:48 · 253 阅读 · 0 评论 -
UI 自动化测试框架:PO 模式+数据驱动 【详解版】
PO(PageObject)设计模式将某个页面的所有元素对象定位和对元素对象的操作封装成一个 Page 类,并以页面为单位来写测试用例,实现页面对象和测试用例的分离。PO 模式的设计思想与面向对象相似,能让测试代码变得可读性更好,可维护性高,复用性高。原创 2023-09-19 19:55:53 · 3180 阅读 · 1 评论 -
Python脚本批量造数据、跑定时任务协助测试
场景一:基于已有的csv文件,分批次读取csv文件中的字段值作为变量填充到执行的SQL语句场景二:随机生成特殊字段的值,作为变量填充到Insert语句中。原创 2023-09-18 16:07:07 · 576 阅读 · 1 评论 -
Selenium常用操作之单选复选框、下拉列表、键盘、截屏、断言、(显式隐式)等待
(1) 强制等待 常用于调试import timetime.sleep(2)(2) 隐式等待 简介: a 、 driver.implicitly_wait(10),隐式等待设置了一个时间,在一段时间内网页是否加载完成,如果完成了,就进行下一步;在设置的时间内没有完成,则会报超时加载;原创 2023-09-17 13:34:49 · 1594 阅读 · 0 评论 -
Selenum八种常用定位(案例解析)
Selenium是一个备受推崇的工具。它有着丰富的功能,让我们能够与网页互动,执行各种任务,能为测试工程师和开发人员提供了很大的便利。要充分利用Selenium,就需要了解如何正确定位网页上的元素。接下来我将带大家共同探讨Selenium中八种常用的定位方法,并通过案例解析,帮助大伙更好地理解如何在自动化测试和网页爬虫中使用它们。原创 2023-09-15 14:19:32 · 269 阅读 · 0 评论 -
postman接口传参案例
先执行A接口,再执行B接口,此时B接口通过全局变量userid可以获取A接口的返回值。原创 2023-09-14 13:56:23 · 917 阅读 · 0 评论 -
下载HTMLTestRunner并修改
下载的HTMLTestRunner.py是针对python2写的,所以针对python3需要适当更改其内容原创 2023-09-13 16:22:28 · 563 阅读 · 0 评论 -
jenkins+newman+postman持续集成环境搭建
Newman是一款基于Node.js开发的,可以运用postman工具直接从命令运行和测试postman集合原创 2023-09-12 15:30:23 · 518 阅读 · 0 评论 -
【自动化测试】之PO模式介绍及案例
PO三层模式:主要分三层:1.base层(对象库层):page页面一些公共的方法。如:初始化、元素定位、点击、输入、获取文本、截图等方法;2.page层(操作层):封装对元素的操作。将每个涉及的元素操作单独封装一个操作方法,然后根据需求组装操作步骤,如登录方法=输入帐号+输入密码+点击登录三个操作进行组装;3.scripts层(业务层):导包调用 page页面,使用单元测试框架对业务逻辑进行封装测试。如:实现登录,直接调用page组装的登陆方法即可。三者的关系:page层继承base层,scrip原创 2023-09-08 17:04:28 · 1399 阅读 · 1 评论 -
抓包工具fiddler的基础知识
fiddler是位于客户端和服务端之间的http代理1、作用监控浏览器所有的http/https流量查看、分析请求内容细节伪造客户端请求和服务器请求测试网站的性能解密https的web会话全局、局部断电功能第三方插件2、使用场景接口调试、接口测试、线上环境调试、web性能分析判断全后端bug、开发环境hosts配置、mock、弱网断网测试使用原创 2023-09-07 15:01:20 · 653 阅读 · 0 评论 -
教你一招,测试人员如何通过AI提高工作效率!
伴随着AI技术的兴起,像OpenAI推出的ChatGPT、Microsoft发布的Microsoft 365 Copilot、阿里的通义千问、百度的文心一言、华为的盘古大模型等。很多测试人员开始担心,岗位是否会被AI取代?其实取代你的不是AI,而是会使用AI的测试人!在工作中,测试人员怎么利用AI提高自己的工作效率呢?一般来说,测试工程师的AI使用场景主要如下,但不局限于此。原创 2023-08-29 17:26:36 · 777 阅读 · 2 评论 -
下单接口调优实战,性能提高10倍
这个是下单接口的逻辑不能大改的情况下的优化方案,一般来说,库存操作应该是单独的服务,可以单独优化的。而单纯的下单逻辑也是可以优化的。以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了各位想获取资料的朋友请,三连!三连之后我会在评论区挨个私信发给你们~原创 2023-08-15 19:22:45 · 314 阅读 · 0 评论 -
web测试与app测试的区别
web项目,一般都是b/s架构,基于浏览器的,而app则是c/s的,必须要有客户端。那么在系统测试测试的时候就会产生区别了。web测试只要更新了服务器端,客户端就会同步会更新。而且客户端是可以保证每一个用户的客户端完全一致的。但是app端是不能够保证完全一致的,除非用户更新客户端。如果是app下修改了服务端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍。原创 2023-08-14 17:31:41 · 346 阅读 · 1 评论 -
app专项测试(网络测试流程)
dns劫持:又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。无网状态测试则是在切换网络的情况下进行的测试,主要关注页面的显示与交互、本地数据的存储、断网功能的使用等,经常该部分也需要与网络切换部分协同进行。目前的网络并非完全的流畅WiFi,目前使用最多的是2G,3G,4G,且使用场景多变,如近地铁,上公交,进电梯,进山区等是的弱网测试显得尤为重要。原创 2023-08-14 17:27:12 · 1287 阅读 · 0 评论 -
app专项测试:app弱网测试
当前APP网络环境比较复杂,网络制式有2G、3G、4G网络,还有越来越多的公共Wi-Fi。在TCP协议中,需要不停的发送请求,来确认连接状态,一旦发生丢包,就需要重传。延时也是最常见的问题。在解决日常支持需求中,经常出现一些用户反馈的Bug无法复现,有很大部分是因为用户的网络不稳定导致,导致出现一些意想不到的BUG。安装平台:通过抓包工具,设置延迟,进行模拟不同的网络情况,比如常用的fiddler, charles。APP使用过程中,弱网的高延迟和高丢包,在实时性要求非常高的场景,容易伤害用户体验。原创 2023-08-14 17:23:21 · 2168 阅读 · 1 评论