当前位置: 首页 > news >正文

某科技公司提前批测试岗

在这里插入图片描述

文章目录

  • 题目

今天给大家带来一家提前批测试岗的真题,目前已经发offer

题目

1.自我介绍
2.登录页面测试用例设计
在这里插入图片描述
3.如何模拟多用户登录
可以使用Jmeter,loadRunner性能测试工具来模拟大量用户登录操作去观察一些参数变化

4.有使用过Jmeter,loadRunner做过性能压测吗?
简单对项目进行过测试

5.谈谈你对SQL注入的理解,在什么情况下会发生
SQL注入是一种常见的安全漏洞攻击,指的是通过在应用程序的输入参数中插入恶意的SQL代码,从而欺骗数据库系统执行非授权的操作。简单介绍在Mybatis使用${}编写SQL语句时发生SQL注入

select * from user username = '${username}' and password = '${password}'

我们只需要在密码输入框输入

1'or'1=1'

就可以修改查询条件从而达到登录功能,建议在Mybatis中使用#{}传递参数

还了解过其他安全问题吗?
HTTP明文传输,使用Fiddler抓包可以直接看到密码

6.介绍项目(博客网站)
介绍背景:自己经常喜欢学习后进行总结,一般都是记录在CSDN,但也想要有一个自己的记录平台,于是就开发了一个博客网站,方便自己后期学习记录
主要工作:后端开发 + 项目测试
技术栈:SpringBoot + Mybatis + Redis + MySQL
主要实现功能:登录功能(动态验证码),注册(邮箱验证),博客列表页(所有用户文章,支持分页功能),个人文章页(个人用户文章),文章编辑页(支持Markdown格式),文章增删改功能,个人信息页(修改头像,昵称,密码)

7.介绍项目部署过程(详细过程+Linux命令+出错排查)
部署之前首先需要将数据库相关配置信息更改为服务器数据库的信息,将yml文件profile从dev改成prod的

  1. 首先介绍了下Servlet项目的部署过程(将war包放在webapps目录下,启动Tomcat)
  2. 在介绍下Spring项目的部署过程(nohup java -jar myblog.jar &)

默认端口是8080,如果被别的应用占用了,可以使用kill -9 8080 或者 修改下项目server-port

8.项目Redis用在哪里
主要用户文章缓存(30分钟的TTL),存储邮箱验证码(2分钟TTL),使用的是Spring提供的Redis,Spring-Data-Redis相关API

9.如何解决Cokkie和Token存储的
Cookie和Token是在Web应用程序中常见的两种身份验证和会话管理机制。
我的项目中是使用的Cokkie,Token和JWT技术也是常见的会话技术,引入这个主要是因为HTTP是无状态的,每次请求都是无状态的,使用Cokkie和Session结合使用使HTTP变成有状态的,当第一次请求到服务器,服务器会创建一个Session并返回给浏览器一个JSessionId,后续请求都会在请求头携带JSessionId

10.将一个表数据清空有哪几种方式
一共有三种方式,分别是:drop,truncate,delete

drop:直接删除表结构包括数据

drop table 表名

truncate:删除表数据保留表结构,一次快速清空整个表,重置自增主键,无法回滚

truncate table 表名

delete:删除表数据保留表结构,但是保留表结构和索引,可以在事务中进行回滚,支持条件删除

delete from 表名 where 条件;

11.介绍常用Linux命令
ls:列出当前目录下的文件
-a 全部
-l 列表
-h 显示大小
pwd:显示当前工作目录
rm:删除文件
mv:移动文件
cp:复制文件
touch:创建文件
cat:查看文件
echo:输出文件
tail:查看文件尾部(默认10行)
head:查看文件首行(默认10行)
more:支持翻页
mkdir:创建目录
vi,vim:文件编译
yum,rpm:包管理命令
top:查看CPU信息
free:查看内存资源
ps:查看进程信息
ifconfig:查看ip信息
nestat:查看网络信息
grep:过滤信息
|:管道符
which:查看命令
chmod:修改文件,文件夹权限
ping:检查网络是否连通
find:查看文件
su/sudo:切换用户
clear或者ctrl + l :清空终端命令
wc:统计文件行数,单词信息
>: 追加符

12.ps常见跟什么参数,aux分别代表什么
-aux 或者 -ef
a: 显示所有用户的进程,而不仅仅是当前用户的进程。
u: 以详细的格式显示进程信息,包括用户、进程ID(PID)、CPU使用率、内存占用等。
x: 显示没有控制终端的进程。

13.对堆和栈的理解
堆是线程共有的可能会发生线程安全问题,栈是线程私有的
栈是一个FIFO的数据结构,主要存储函数调用信息、局部变量、函数参数、返回值,可能会出现栈溢出
堆主要是用来存储对象和数组,用户不需要关注内存管理和垃圾回收,这一块是由JVM帮我们来管理的,堆也是我们JVM内存中最大的一部分,我们可以通过 -xms -xmx调节。
需要我介绍一下垃圾回收相关内容吗?
面试官:这块你掌握的还可以,先不介绍了

14.HTTP与HTTPS的区别,签名是对称加密还是非对称加密
HTTP是明文传输不安全,HTTPS是在HTTP在TCP之间加了SSL/TLS安全协议,通过对称加密,非对称加密,数字证书来确保安全性,HTTP默认端口是8080,HTTPS是443
签名是非对称加密,服务器生成一对公钥密钥,将公钥和数字证书传输给浏览器,浏览器用来验证服务器信息,然后使用公钥加对称密钥传输给服务器,主要是为了确保安全性,防止运营商劫持,后续使用对称加密是为了考虑效率问题

15.输入一个网址到页面显示出来的过程
输入一个网站就是URL,首先URL有几部分组成,协议+IP+端口(可省略,HTTP默认是8080)+路径+参数(通过&间隔),URL对应服务器一个资源,但是IP一般比较难记,我们可能使用的是服务器的域名,浏览器会构建一个HTTP请求,但是TCP不识别域名,于是我们需要对域名进行解析,首先会查询浏览器缓存,然后去查看Host文件,如都没有的话,再去请求本地DNS服务器,如果本地DNS服务器没有再去请求根DNS服务器获取该域名的权威DNS服务器,然后请求权威DNS服务器获取IP地址。
通过DNS获取到IP之后,浏览器通过调用Socket库来委托操作系统的协议栈,HTTP是基于TCP的,首先会建立三次握手,生成TCP头信息,包括源端口和目的端口,端口是为了定位服务器中唯一的进程,再去调用网络层提供的服务IP头封装一个源地址IP和目标IP,再去调用网络接口层封装一个MAC地址和目标MAC地址,但是我们并不知道对方的MAC地址,那么就需要借助ARP协议帮我们找到路由器的MAC地址,ARP协议会帮我们在以太网中广播去获取IP,并将本次查询存放在ARP缓存中,目前我们的网络包只是存放在内存中的一串二进制信息,无法发送,于是需要借助我们的网卡,将内容复制到网卡的缓冲区中,加上起始帧分隔符和末尾加上校验序列,并将数字信息转化为电信号,然后交换机根据MAC地址查找MAC地址,将信号发送到相应端口,如果没有查到那么就会给每个端口都会发送,经过交换机到达路由器进行转发达到服务器之后层层解析直到获取到相应资源,生成HTTP响应返回给浏览器,如果是 HTML 文档,则进入下一步; 否则,如果是图片、CSS 文件、JavaScript 文件等资源,则浏览器会进行相应的渲染或执行。

相关文章:

某科技公司提前批测试岗

文章目录 题目 今天给大家带来一家提前批测试岗的真题,目前已经发offer 题目 1.自我介绍 2.登录页面测试用例设计 3.如何模拟多用户登录 可以使用Jmeter,loadRunner性能测试工具来模拟大量用户登录操作去观察一些参数变化 4.有使用过Jmeter,loadRunner做过性能压…...

一次redis缓存不均衡优化经验

背景 高并发接口,引入redis作为缓存之后,运行一段时间发现redis各个节点在高峰时段的访问量严重不均衡,有的节点访问量7000次/s,有的节点访问量500次/s 此种现象虽然暂时不影响系统使用,但是始终是个安全隐患&#x…...

npm发布包

1.npm 登录 在控制台输入命令 npm login 按提示输入用户名,密码,邮箱后登录 如果出现如下提示 需要将淘宝镜像源切换为npm源,删除或注释以下内容就行 2.发布 进入准备发布的代码的根目录下,输入命令 npm publish 3.删除已发…...

Qt5.13引入QtWebApp的模块后报错: error C2440: “reinterpret_cast”: 无法从“int”转换为“quintptr”

1、开发环境 Win10-64 qt5.13 msvc2015-64bit-release 2、报错 新建一个demo工程。 引入QtWebApp的httpserver、logging、templateengine三个模块后。 直接运行,,此时报错如下: E:\Qt5.13.1\install\5.13.1\msvc2015_64\include\QtCore…...

软件为什么要进行性能压力测试?

软件为什么要进行性能压力测试?随着软件应用的不断增多和复杂度的提高,软件的性能对用户体验和业务成功至关重要。性能问题可能导致软件运行缓慢、崩溃或无响应,给用户带来不便甚至损失。为了确保软件能够在高负载和压力下正常运行&#xff0…...

阻塞队列BlockingQueue详解

一、阻塞队列介绍 1、队列 队列入队从队首开始添加,直至队尾;出队从队首出队,直至队尾,所以入队和出队的顺序是一样的 Queue接口 add(E) :在指定队列容量条件下添加元素,若成功返回true,若当前…...

pygame贪吃蛇游戏

pygame贪吃蛇游戏 贪吃蛇游戏通过enter键启动,贪吃蛇通过WSAD进行上下左右移动,每次在游戏区域中随机生成一个食物,每次吃完食物后,蛇变长并且获得积分;按空格键暂停。 贪吃蛇 import random, sys, time, pygame from …...

Mac系统下使用远程桌面连接Windows系统

一、远程桌面工具 Microsoft Remote Desktop 二、下载地址 https://go.microsoft.com/fwlink/?linkid868963 三、下载并安装 四、添加远程PC PC name:云服务器IP。 User account: 添加系统用户 PC name:远程桌面 IP 地址User account:可以选择是…...

使用 OpenCV 和深度学习对黑白图像进行着色

在本文中,我们将创建一个程序将黑白图像(即灰度图像)转换为彩色图像。我们将为此程序使用 Caffe 着色模型。您应该熟悉基本的 OpenCV 功能和用法,例如读取图像或如何使用 dnn 模块加载预训练模型等。现在让我们讨论实现该程序所遵循的过程。 给定一张灰度照片作为输入,本文…...

从价值的角度看,为何 POSE 通证值得长期看好

PoseSwap 是 Nautilus Chain 上的首个 DEX,基于 Nautilus Chain 也让其成为了首个以模块化构建的 Layer3 架构的 DEX。该 DEX 本身能够以 Dapp 层(Rollup)的形态,与其他应用层并行化运行。...

pytorch的CrossEntropyLoss交叉熵损失函数默认reduction是平均值

pytorch中使用nn.CrossEntropyLoss()创建出来的交叉熵损失函数计算损失默认是求平均值的,即多个样本输入后获取的是一个均值标量,而不是样本大小的向量。 net nn.Linear(4, 2) loss nn.CrossEntropyLoss() X torch.rand(10, 4) y torch.ones(10, dt…...

OKR管理策略:为开发团队注入动力

引言 在这个快速变化的世界中,公司需要迅速应对市场变化,并保持其目标和战略的清晰性和一致性。而OKR(Objectives and Key Results)正是这个挑战的解决方案之一。OKR的实施可以帮助开发团队明确目标,关注关键结果&…...

C++二叉搜索树剖析

目录 🍇二叉搜索树概念🍈二叉搜索树查找🍉二叉搜索树的插入🍊二叉搜索树的删除🍍二叉搜索树的查找、插入、删除实现🍋二叉搜索树的应用🥭二叉搜索树的性能分析🍓总结 🍇二…...

升级你的GitHub终端认证方式:从密码到令牌

升级你的GitHub终端认证方式:从密码到令牌 前言 GitHub官方在2021年8月14日进行了一次重大改变,它将终端推送代码时所需的身份认证方式从密码验证升级为使用个人访问令牌(Personal Access Token)。这个改变引起了一些新的挑战&am…...

【力扣】链表题目总结

文章目录 链表基础题型一、单链表翻转、反转、旋转1.反转链表2.反转链表II——反转部分链表3.旋转链表4.K个一组翻转链表5.反转偶数长度组的节点 二、删除单链表中的结点1.删除链表的结点2.删除未排序链表中的重复节点3.删除已排序链表中的重复元素I——重复元素只剩下一个4.删…...

Thunar配置自定义动作

Add “Copy To” and “Move To” custom actions in Thunar file manager | For the record 1.在此打开终端 图标-应用程序:utilities-terminal 命令:exo-open --working-directory %f --launch TerminalEmulator 文件类型:* 目录 2.右键增…...

Python 开发工具 Pycharm —— 使用技巧Lv.3

单步执行调试 1: 鼠标左键单击红点是断点行 2:甲虫样式是进行调试方式运行,鼠标左键单击点击 3: 单步运行图标,点击让程序运行一行 4: 步入步出,可以进入当前代码行函数内 5:重新运行…...

51单片机(普中HC6800-EM3 V3.0)实验例程软件分析 实验三 LED流水灯

目录 前言 一、原理图及知识点介绍 二、代码分析 知识点五:#include 中的库函数解析 _crol_,_irol_,_lrol_ _cror_,_iror_,_lror_ _nop_ _testbit_ 前言 第一个实验:51单片机(普中HC6800-EM3 V3.0…...

深度学习与计算机相结合:直播实时美颜SDK的创新之路

时下,实时美颜技术就成为了直播主们的得力工具,它可以在直播过程中即时处理视频画面。而支持实时美颜功能的SDK更是推动了这项技术的发展,让直播主和普通用户都能轻松使用美颜功能。 一、美颜技术的演进 早期的美颜技术主要依赖于简单的图…...

Unity寻找子物体的方法

1.GetComponentsInChildren() 查找单个子物体 GameObject childObjectGetComponentInChildren<Transform>(); 查找多个子物体 Transform[] myTransforms GetComponentsInChildren<Transform>(); foreach (var child in myTransforms){ Debug.Log(child.name…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...