2023年金三银四必备软件测试常见面试题1500问!!!

news2024/11/29 8:53:43

十九、持续集成

19.1 jenkins + ant + jmeter + svn接口自动化测试?

jenkins + ant + jmeter + svn环境搭建

原来这个环境是我这边搭建的,

主要是几个步骤,

第一Jenkins安装、第二,ant安装、第三,jmeter安装、第四,jmeter与ant连接

第五,Sn安装、第六,任务的构建

首先我们要确定jdk已经安装好了,jdk安装,可以下载jdk包,配置环境变量就行

再jenkins搭建,原来我们是用yum安装命令, yum install -y jenkins安装 jelkins

如果yum安装不能进行,yum仓库添加 jenkins连接信息

或者就用下载安装包进行安装

ant安装,我们可以百度去下载,

像原来我们这边一般会把常见安装包文件执行,我都会保存一个安装文档,

当下载ant安装包以后,只需要解压,并且配置环境就可以了

jmeter安装,也是先下载安装包,把安装包导入到linux服务器,解压,配置环境变量就ok了

jmeter跟ant连接,主要是配置 build.xml的文件,

文件目录放在jmeter目录下,build文件主要是配置,

jmeter的路径,保存生成html跟jtl报告的路径,还运行jmx脚本的路径

把jmeter文件 ant-jmeter-1.1.1.jar放在ant目录下

把jmeter-results-shanhe-me.xsl上传至 jmeter安装目录的 extras文件夹下

也要配置jmeter.properties文件把输出结果由csv修改成xml

配置完成后,我们可以用ant run运行调试下,能否运行脚本成功

svn服务器安装,原来已经安装好

安装,通过yum安装到服务器里面,建立资源库,配置里面配置文件,添加用户,修改权限,再通过,

svnserve -d -r /data/svn/启动服务器,同时我们要考虑防火墙是否允许访问或者关闭防火墙

jenkins任务的构建

在jmeter系统配置中,先要添加环境变量,主要是jdk的路径,ant的路径(linux服务器里面的路径)

添加2个插件,一个 html publisher pulin主要生成HTML报告,一个 performance

pgn运行 jmeter脚本生成jtl报告

再构建一个任务,

在任务中

丢弃旧的构建,

再源码管理,配置svn服务器路径,导出文件位置,还有svn用户与密码

配置生成jtl报告的位置

配置生成html报告的位置

配置定时构建,原来我们设置设置半个月跑一次

还配置邮件发送( jenkins,系统配置,配置邮件服务器地址)

原来我们持续集成是半个月运行一次,当然我们也可以手动构建

1,我们一般把写完的jmeter的脚本

2,通过svn把写好的脚本检入到svn服务器

3,在 jenkins任务下,选择定时构建,或者手动构建,检出svn上传最新脚本,去运行一般我们项目在修改新的功能模块,上线,转测之前,都会自动去运行脚本。

运行完成,我们再jenkins下,查看脚本运行结果。

19.2 jenkins如何使用?

原来我们主要是用来,持续构建环境还有我们的自动化脚本的运行

比如说:jmeter接口自动化脚本

原来我们jmeter脚本运行,在 jenkins里面,首先先建立一个任务,再从svn服务器中导出jmx脚本,设置定时器,原来我们都是早上B点钟自动运行,构建 ant run运行,后面添加生成的html根告跟jtl报告,运行完成后,我们进行邮件提醒,我们只需要查看邮件,直看运行结果就ok,出现了问题,我再去找开发修复问题。

后续我们编写完成的接口自动化脚本,只需要通过svn检入到svn服务器即可,就会每天定时去运行,查看结果就好。

比如说:pytest框架自动化脚本

也是构建一个任务,设置源码管理,从svn导出源码,原来我们都是手工构建,没有建立定时任务,执行shell命令python pytest -m测试用例的路径,

设置生成allure报告,建立邮件提醒,后面的工作当中,如果要运行 pytest框架编写脚本

只需要通过svn把代码导入到svn服务器,手工构建,运行完成后,发送邮件提醒运行结束,如果有错误,可以在jenkins平台里面去查看allure报告。

搭建环境这块,原来不是我做的,大概的流程。

原来我们构建测试环境,先建一个任务,源码管理,从svn服务器导出源码进行构建,运行she令,包的解压跟替换,重启服务,建立一个邮件提醒。后期每次需要提测或者转测的时候,只需要去手动构建这个任务即可。里面还有一些,dev环境,部署,线上环境部署,但是一般我们测试就没有怎么操作,但是原理都是一样。

二十、场景问题

20.1 有没有抓过包,为什么要抓包,具体怎么做的?

抓包这块,其实我们在工作用得是比较多的,一般我们都在测试过程碰到问题,我们有的候通过抓包去看一下前端与后台的数据交互,通过分析这个数据,来定位到底是前端问题,还是后台问题。

主要用的就是fiddler工具,如果只是抓取Web端数据的话,只要在浏览器上设置代理服务器,指定代理服务器为本地的fiddler这个工具,设置好端口:8888 就可以了,如果要抓取手机端的包,首先需要保证手机与电脑(安装了 fiddler的这个电脑)在同一个网络,在手机上要设置http代理服务器为手动,然后服务器指定为电脑的ip地址,端口设置为8888

例外,如果要抓取https包,可能还需要在电脑上安装证书,手机端这边也要安装证书,差不多这样就可以。

20.2 为什么要进行抓包?具体怎么分析的?

主要是我们在测试过程中,出现Bug的时候,为了定位问题,分析问题,需要抓取前端后台的数据交互过程,通过看数据,从而来分析到底是前端问题还是后台问题

分析这块的话:

1、首先看发的请求是否有问题,请求的接口url是否有错误,参数是否有错误,如果url或传参有问题那就是前端Bug

2、如果请求没有问题,看下后台返回的数据是否有问题,状态码5开头的基本都是后台问题,状态码为200,响应数据与预期不一致,那也是后台Bug,不过这里有可能是数据库问题,也有可以是后台代码问题,这里首先我一般会查看下数据库的数据,如果数据库没有问题,那就需要查看下后台的日志文件,具体分析下看是后台代码哪里出问题了,然后把日志信息信息截图给开发,

3、返回的数据没有问题,请求参数,u也没有问题,那可能是前端代码是否转换有问题,那就是前端Bug

20.3 大概给我讲下抓包的原理?

其实就是把fiddler设置为代理服务器,那么浏览器上发出所有请求都由 fiddler这个工具来代理转发,其实就是说:通过fiddler来拦截客服端与服务端之间的数据交互,这样我们可以拦截到客户端给服务器发了什么数据,服务器给客户端响应了什么数据,然后对数据进行分析。

20.4 给你一个需求,你具体讲下,你怎么测试?

第一点:首先我要熟恶这个需求的背景,这个需要功能,我至少要知道这个需求做的是什么吧,做的 是一个什么样的解决方法这个要搞清楚。

第二点:这些搞清楚,看这个需要和其他模块有哪些交互,需不需要关联起来分析,有没有影响到其 他模块,或者数据有没有流向其他模块。

第三点:这些都清楚了,那么我会根据熟悉的情况看下工作量,哪个时间点交付,在这个时间点我需 要做一个计划给老大说下,如果时间充分,一个人能搞定,那么就一个人搞定,搞不定,我 会向老大申请人力。其实接下来也差不多了,分析需求,尽量要评审,在前期就保证好质量, 如果没有问题。其他也就是用例实例化,执行啊,bug跟踪啊等,最后出个报告就好了。

基本我做的活,会这么做主要看你在最短时间把需求吃透,做好计划,展开工作。

20.5 给你一个项目,你怎么展开工作,请详细说一下,你具体怎么做的

面试官考的点:进我公司,给你一个项目,你怎么做,看你有没有独立做项目能力

第一点:首先我要熟悉这个项目的背景,我至少要知道这个项目做的是什么吧,做的是一个什么样的 解决方法这个要搞清楚

第二点:这些搞清楚,那么必须要清楚这个项目的核心模块和业务,我们给这个模块做一个优先级, 先测试哪些核心模块,再做哪些模块

第三点:根据刚刚信息,我会熟悉这个业务,这个业务相关模块,以及写数据前后台交互等

第四点:这些都熟恶了,那么我会根据熟悉的情况看下工作量,哪个时间点交付,在这个时间点我需 要做一个测试计划一般需求分析的话,根据我的经验基本2天差不多了,编写用例时间,执行时 间,bug修复时间,我会做一个工作量评估,如果还有其他测试,我会把这个计划发给大家,让 大家评审这个计划和安排,看安排是否合理,大家能不能在这个计划时间段完成,基本需求分析 等多给个2天左右,那么大家要再这个时间段完成,完成后我会安排大家讲解需求,做需求评审 和需要讲解,前期时间多投入点,后面风险小一点,这个我主要跟进下进度就行。

第五点:那么接下来,大家按照计划去编写用例,用例在时间点完成后,我会组织大家评审,这个两 个我必须把控,减少后面测试风险,前面分析和用例把握到位,后续执行和bug这块不会有太多 问题后续的话,那么大家执行就行,我主要跟进这个进度,每天大家bug解决情况,以及测试进 度,做成日报,像些问题不好解决的,有问题的,我去协助那么测试完成后,我会收集大家测试 数据,做一份测试报告,这个我会评估这个测试有没有风险,没有的话,发送给开发老大,开发 所有人,测试所有人。这块评审下,后续组织测试人员安排上线,我基本是这么做的

20.6 项目快上线因为开发延迟,测试时间被压缩怎么做?

[开发延期完成,产品还需如期上线,测试需怎么办

首先看下自己还剩下多少时间,然后要评估工作量,评估下风险,比如说,可能我根本做不完,风险太大,那么这个我首先要把风险提出来,给对应的领导,那么我会要求有人协助我完成,需要多少人力来完成,

如果只是说,正常时间完不成,那么我可以提下加班,看加班这个时间段能否完成,如果可以,我会和老大商量,提出加班计划。

如果是其他的,先跟领导确认,比如说我只需要把优先级高的工作完成其他工作可以安排到下一个版本去做,那么我就做个计划,把计划个老大说下。

20.7 如果时间比较紧的话,你怎么安排你的工作

首先要评估下风险,比如说,可能我根本做不完,风险太大,那么这个我首先要把风脸提出来,给对应的领导,那么我会要求有人协助我完成,需要多少人力来完成,

如果只是说,正常时间完不成,那么我可以提下加班,看加班这个时间段能否完成,如果可以,我会和老大商量,提出加班计划,

如果是其他的,比如说我只需要把优先级高的工作完成,其他工作可以安排到下一个版本去做,那么我就做个计划,把计划个老大说下。

20.8 返回数据现在有问题,怎么排查问题?

这个可能需要抓包,首先抓包看下前后台的数据交互情况,确认下是不是前端请求发送,有问题导致返回数据有问题。如果是请求有问题,那提Bug给前端,让前端修复,

如果请求没有问题,与接口文档对比,查看下返回数据具体是哪里出问题了,这里还得,首先查看下数据库,看是不是数据库中本身数据就有问题,如果数据库数据没有问题,那可能是后台代码问题,这个时候可以查看下后台的日志文件,通过分析日志文件的错误信息排

查具体什么原因导致问题出现

20.9 有时候下订单成功有时候下单失败是什么原因

对于订单成功和失败的情况,各自去抓包,把两次抓取的数据来做对比,分析原因

1、假如发送的请求不同,那肯定是前端问题,

2、假如是返回数据不同,那基本判定是后台代码出了问题,这时候可以去看日志,看数据库,把这些信息提交给开发处理,也可能是网络问题没发出去的。

20.10 APP出现崩溃时怎么抓取日志

# adb logcat android studio logcat

这种情况我肯定要去看手机端的日志,去分析崩溃日志,通过adb logcat去直看日志,

根据崩溃时间段去查找这个时间段日志,去查看是否有Error,Exception,Crash,OOM等显

现,分析日志,不懂的可以百度查看下原因,然后发给开发处理。

20.11 微信里面,如果大家都看不到你发的朋友圈信息,分析下什么原因

1、A删除了那条朋友圈信息

2、A屏蔽了所有好友查看自己的朋友圈

3、如果没有屏蔽,多发几条看看,如果发的所有朋友圈,好友都看不到,

也可能是微信后台出问题了,或者A的微信账号有异常等等,

不过这种情况不太可能。

20.12 微信里面,如果只是B看不到,其他朋友都可以看到,分析下什么原因

1、B把A拉黑了

2、A把B拉黑了

3、B设置了不查看a的朋友圈

4、A设置了屏蔽B看到自己的朋友圈,或者A屏蔽了自己所有的朋友圈

5、A删除了那条朋友圈信息

6、A设置了只展示某个时间段的朋友圈信息

7、B根本就不是A的微信好友

20.13 你测试数据是从哪里获得?怎么获得的,假如不告诉你,你怎么处理?

(1) 一般都是我们测试人员在测试过程自己造的测试数据,如果大量数据,我们可以用到存储过程

(2) 也可以让运维人员帮忙从生产环境导出相关的测试数据,如果测试数据中涉及安全性的数据,直接是不能导出

近几千道题+答案,太多了这里就展示了其中的一部分如果大家有需要的话可以点击文章末尾的小卡片备注000领取哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/367448.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML基础(1)

HTML基础HTML基本介绍编辑工具HTML概述多如牛毛的标签头部标签&#xff1a;标题与段落标签&#xff1a;br换行符&#xff1a;a href超链接标签&#xff1a;< meta > 元素标签&#xff1a;主体标签HTML注释&#xff1a;水平线标签hr&#xff1a;段落标签p&#xff1a;文本…

[ 常用工具篇 ] 多媒体视频处理工具 ffmpeg 安装使用详解

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

【python学习笔记】:字符串编码转换

在 Python 中&#xff0c;有 2 种常用的字符串类型&#xff0c;分别为 str 和 bytes 类型&#xff0c;其中 str 用来表示 Unicode 字符&#xff0c;bytes 用来表示二进制数据。str 类型和 bytes 类型之间就需要使用 encode() 和 decode() 方法进行转换。 Python encode()方法 …

软件工程(4)--螺旋模型

前言 这是基于我所学习的软件工程课程总结的第四篇文章。 在软件开发过程中必须及时识别和分析风险&#xff0c;并且采取适当措施以消除或减少风险的危害。构建原型是一种能使某些类型的风险降至最低的方法。为了降低交付给用户的产品不能满足用户需要的风险&#xff0c;一种行…

LeetCode 725. 分隔链表

LeetCode 725. 分隔链表 难度&#xff1a;middle\color{orange}{middle}middle 题目描述 给你一个头结点为 headheadhead 的单链表和一个整数 kkk &#xff0c;请你设计一个算法将链表分隔为 kkk 个连续的部分。 每部分的长度应该尽可能的相等&#xff1a;任意两部分的长度差…

〖产品思维训练白宝书 - 核心竞争力篇⑯〗- 产品经理核心竞争力解读之如何学习的又快又好并学以致用

大家好&#xff0c;我是 哈士奇 &#xff0c;一位工作了十年的"技术混子"&#xff0c; 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 &#x1f4ac; 人生格言&#xff1a;优于别人,并不高贵,真正的高贵应该是优于过去的自己。&#x1f4ac; &#x1f4e…

前端算法codewhy第一章: 邂逅数据结构与算法

第一章: 邂逅数据结构与算法 编程的真相 – 数据的处理 数据结构与算法的本质 学习数据结构与算法到底有什么实际应用&#xff1f; 源码中的数据结构 如何学习数据结构与算法&#xff1f; TypeScript常见数据结构与算法 到底什么是数据结构 什么是数据结构&#xff08;Data Str…

数据库系统之并发控制(重点标记)

1. 并发控制概述 事务是并发控制的基本单位&#xff0c;并发控制机制的任务是&#xff1a; 对并发操作进行正确调度。保证事务的隔离性。保证数据库的一致性。 数据不一致及其原因 并发操作带来的数据不一致性主要包括丢失修改&#xff0c;不重复读和读“脏”数据。产生三类数…

Appium自动化测试 Inspector定位Webview/H5页面元素

目录操作步骤Python操作该混合App代码Appium在操作混合App或Android App的H5页面时, 常常需要定位H5页面中的元素, 传统方式是 FQ 使用Chrome://inspect来定位元素, 环境准备相当繁琐, 不仅需要想办法FQ, 而且还需要Android设备安装Google框架以及手机版Chrome浏览器以及相应的…

图片分类 STL-10 数据集下载及使用指南

转载自安全验证 - 知乎 这次给大家介绍的 STL10数据集&#xff0c;是图片分类任务早期常用的基准数据集之一&#xff0c;虽然只有10种样本&#xff0c;图片尺寸也偏小&#xff0c;但是标注类型比较平衡&#xff0c;各种种类都有各500张&#xff08;train&#xff09;/800张&am…

深度解析linux的文件系统

背景&#xff1a;虚拟文件系统&#xff08;有时也称作虚拟文件交换&#xff0c;更常见的是简称VFS)作为内核子系统&#xff0c;为用户空间程序提供了文件和文件系统相关的接口。系统中所有文件系统不但依赖VFS共存&#xff0c;而且也依靠VFS系统协同工作。通过虚拟文件系统&…

动态规划(一):01背包问题和完全背包问题

动态规划 目录动态规划1.01背包问题1.1题目介绍1.2思路一介绍(二维数组)1.3思路二介绍(一维数组) 空间优化1.4思路三介绍(输入数据优化)2.完全背包问题2.1题目描述&#xff1a;2.2思路一(朴素算法)2.3思路二(将k优化处理掉)2.4思路三(优化j的初始条件)总结1.01背包问题 1.1题目…

求职-进度

2-23 投递 恒生校招 C https://campus.hundsun.com/personal/deliveryRecord 投递 合合信息 大数据开发工程师 https://intsig.zhiye.com/personal/deliveryRecord 投递 尚游网络 游戏服务器开发工程师 https://app.mokahr.com/campus_apply/shangyou/36582?recommendCodeDS…

项目管理中,哪些信息差是不应该存在的呢?

在项目管理中&#xff0c;如果存在信息差&#xff0c;那么就会存在了巨大的问题&#xff0c;从而导致项目的失败。 项目管理中哪些信息差是不应该存在的呢&#xff1f; 1、项目背景 项目经理接手项目&#xff0c;首先要了解清楚项目背景&#xff0c;避免在项目过程中对自己…

计算句子向量相似度:SentenceBert和SimCSE

SentenceBert Sentence-BERT: 如何通过对比学习得到更好的句子向量表示 - 哔哩哔哩 (bilibili.com) (229条消息) Sentence-BERT详解_数学家是我理想的博客-CSDN博客_sentence-bert 动机&#xff1a; 直接把2个句子串联起来输入Bert做分类&#xff08;即Cross-Encoder方式&…

Blazor入门100天 : 身份验证和授权 (6) - 使用 FreeSql orm 管理ids数据

目录 建立默认带身份验证 Blazor 程序角色/组件/特性/过程逻辑DB 改 Sqlite将自定义字段添加到用户表脚手架拉取IDS文件,本地化资源freesql 生成实体类,freesql 管理ids数据表初始化 Roles,freesql 外键 > 导航属性完善 freesql 和 bb 特性 本节源码 https://github.com/…

Maven基础-又简单又详细

如果文章对你有帮助欢迎【关注❤️❤️❤️点赞&#x1f44d;&#x1f44d;&#x1f44d;收藏⭐⭐⭐】一键三连&#xff01;一起努力&#xff01; 一、Maven简介 1、maven是什么 Maven的本质是一个项目管理工具&#xff0c;将项目开发和管理过程抽象成一个项目对象模型&#x…

JavaTCP通信程序

3 TCP通信程序 3.1 TCP通信原理 TCP通信协议是一种可靠的网络协议&#xff0c; 它在通信的两端名建立一个Socke对象&#xff0c; 从而在通信的两端形成网络虚拟链路一旦建立了 虚拟的网络链路&#xff0c;两端的程序就可以通过虚拟链路进行通信Java对基于TCP协议的的网络提供…

python3.11.2安装 + pycharm安装

下载 &#xff1a;https://www.python.org/ 2.双击下载的软件&#xff1a; 3.进入安装界面 下一步&#xff0c;点击 是 上一步点击后就看到如下&#xff1a; 安装成功了&#xff0c;接下来检测一下&#xff1a;cmd 安装pycharm PyCharm是一种Python IDE&#xff08;Integr…

office三件套与mathtype的安装和导入word

0. 前言 网上大部分说的不够具体&#xff0c;说的比较具体的就是下面这篇文章&#xff0c;但关键他路径还是错的。 MathType如何导入word 可能因为他是32位系统&#xff0c;所以office中某些路径和设置不一样&#xff0c;下文中一一指出。 mathtype导入word0. 前言1. 安装1.…