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

测试测开面试要知道的那些事01

列表与元组的区别

  • 列表是动态数组,它们可变且可以重设长度(改变其内部元素的个数)。

  • 元组是静态数组,它们不可变,且其内部数据一旦创建便无法改变。

  • 元组缓存于Python运行时环境,这意味着我们每次使用元组时无须访问内核去分配内存。

深拷贝与浅拷贝的区别

  • 浅拷贝只复制对象的第一层属性、深拷贝可以对对象的属性进行递归复制

  • 浅拷贝基本类型的值之间互不影响,引用类型其中一个对象改变了地址,就会影响另一个对象;

深拷贝改变新对象不会影响原对象,他们之前互不影响。

浅拷贝:创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址。

深拷贝:将一个对象从内存中完整的拷贝一份出来,从堆内存中开辟一个新的区域存放新对象

Python垃圾回收机制

python采用的是引用计数机制为主,标记-清除分代收集两种机制为辅的策略。

(详情可查看http://t.csdn.cn/EHSjS)

web端与移动端测试区别

  • 系统架构:web端是B/S架构,基于浏览器的。App项目是C/S架构,用户需要安装客户端。

  • 性能:web端的性能更关注页面的响应速度,移动端更关注流量、耗电量、CPU、内存等

  • 兼容性:web端更侧重于浏览器、电脑硬件、操作系统方面的兼容;移动端兼容的是手机设备,要看设备系统、机型、分辨率、屏幕尺寸。

  • 交互方式:web主要采用鼠标点击方式;而App主要是手指点击、拖拽、手势测试、横屏测试,考虑更多的是手指的交互习惯。

  • web测试是基于浏览器的,所以不用考虑安装卸载。而App是客户端,必须测试安装、卸载、更新,还需要考虑其他异常情况,包括安装时候中断、弱网,安装后删除安装文件(可删除,不影响软件正常运行)。

selenium定位不到元素怎么办

要确认是哪种原因定位不到:

  • frame/iframe表单嵌套

  • 页面跳转到新标签页,或弹出警告框等

  • 页面元素失去焦点导致脚本运行不稳定

  • 使用Xpath或CSS定位

  • 页面还没加载出来就对页面上的元素进行操作

  • 元素被遮挡,不可用,不可见

  • 用WebDriver调用JavaScript代码代替无法实现的功能

解决办法详情可参考http://t.csdn.cn/wWq1P

服务器资源显示不足,用Linux命令怎么找到问题

通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解。

  • uptime

  • dmesg | tail

  • vmstat 1

  • mpstat -P ALL 1

  • pidstat 1

  • iostat -xz 1

  • free -m

  • sar -n DEV 1

  • sar -n TCP,ETCP 1

  • top

详情可以参考http://t.csdn.cn/GdgQh

TCP/IP四层模型

从上到下依次是应用层,传输层,网络层,网络接口层(数据链路层)

TCP与UDP的区别

  • TCP 是面向连接的,UDP 是面向无连接的

  • UDP程序结构较简单

  • TCP 是面向字节流的,UDP 是基于数据报的

  • TCP 保证数据正确性,UDP 可能丢包

  • TCP 保证数据顺序,UDP 不保证

什么是面向连接,什么是面向无连接:在互通之前,面向连接的协议会先建立连接,如 TCP 有三次握手,而 UDP 不会TCP 为什么是可靠连接:通过 TCP 连接传输的数据无差错,不丢失,不重复,且按顺序到达。

TCP 报文头里面的序号能使 TCP 的数据按序到达

报文头里面的确认序号能保证不丢包,累计确认及超时重传机制

TCP 拥有流量控制及拥塞控制的机制

Http与Https的区别

  • HTTPS 协议需要到 CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。

  • HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。

  • HTTP 和 HTTPS 使用的是完全不同的连接方式,默认端口也不一样,前者是80,后者是443。

  • HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)

  • 理论上,http响应速度更快,这是因为http只需三次握手,也就是3个包即可建立连接, 而https除了三次握手,还需进行ssl握手,一共需要12个包。

  • https是构建在SSL之上的http协议,所以https会消耗更多的服务器资源。

用SQL查找平均分低于80分的学生学号

SELECT Sno, AVG(Score) AvgScore

FROM SC

GROUP BY Sno

HAVING AVG(Score)<80

算法1:用指针合并两个有序数组

arr1 = [1,3,4,6,10] #初始化两个数组
arr2 = [2,5,8,11]
ind = 0
ans = arr1.copy() #ans 初始化为 arr1
for i in range(0,len(arr2)):while ind < len(arr1):if arr2[i] <= arr1[ind]: #ind 的范围不能超过数组元素下标的最大值ans.insert(ind + i,arr2[i]) #向第一个数组中的合适位置插入第二个数组中的数breakelse:ind += 1 #如果 ind 指向的数比 i 指向的数小,则 ind 向后一位else: #如果 arr1 已遍历完,直接把剩下的 arr2 拼到 arr1 结尾ans = ans + arr2[i:]break

while...else 语句是用来判断 while 循环是否被完整执行完的语句。

如果 while 循环的结束是因为 while 后面的判断语句(ind < len(arr1))的返回值为 False,则执行 else;

如果是因为 break 而跳出循环,则不执行 else。

为什么要用 ans 存储 arr1 的值,而不在 arr1 内部直接改动呢?

如果直接使用 arr1 存储答案,在向数组中添加元素的过程中,列表内部的元素会变化,也就是说,我

们丢失了 arr1 的原来的值。用 ind 调用原来列表中的元素与 arr2 中的元素进行比较,而向 ans

中插入 arr2 的数,就可以有效避免这个问题。

算法2:全排列列表

给定一个数字列表,返回其所以的可能列表

# 问题示例
# 输入[1],输出[[1]],输入[1,2,3],输出[[1,2,3,],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]。
# 代码实现class Solution:# 参数nums:整数数组# 返回值:排列后的列表def arrange(self, nums):def _arrange(result, temp, nums):if nums == []:result += [temp]else:for i in range(len(nums)):_arrange(result, temp + [nums[i]], nums[:i] + nums[i + 1:])if nums is None:return []if nums is []:return [[]]result = []_arrange(result, [], sorted(nums))return result# 主函数
if __name__ == '__main__':s = Solution()nums = [1, 2, 3]result = s.arrange(nums)print("输入:", nums)print("输出:", result)

相关文章:

测试测开面试要知道的那些事01

列表与元组的区别列表是动态数组&#xff0c;它们可变且可以重设长度&#xff08;改变其内部元素的个数&#xff09;。元组是静态数组&#xff0c;它们不可变&#xff0c;且其内部数据一旦创建便无法改变。元组缓存于Python运行时环境&#xff0c;这意味着我们每次使用元组时无…...

物联网毕设 -- 智能厨房监测系统(改)

前言 在家庭生活中&#xff0c;厨房是必不可少的&#xff0c;所以厨房的安全问题关乎着我们大家的生命&#xff0c;所以提出智能厨房监测系统&#xff0c;目的就是为我们减少不必要的安全问题 ⚠️⚠️&#xff08;本文章仅提供思路和实现方法&#xff0c;并不包含代码&#x…...

macOS 13.3 Beta 3 (22E5236f)发布

系统介绍3 月 8 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 13.3 开发者预览版 Beta 3 更新&#xff08;内部版本号&#xff1a;22E5236f&#xff09;&#xff0c;本次更新距离上次发布隔了 7 天。macOS Ventura 带来了台前调度、连续互通相机、FaceTime 通话接力…...

Failed to configure a DataSource: ‘url‘ attribute

一 完整的错误信息 *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: url attribute is not specified and no embedded datasource could be configured. Reason: Failed to dete…...

Mysql高级——锁

锁 mysql锁的分类 从性能上分为&#xff1a;乐观锁、悲观锁从锁的粒度上分&#xff1a;行锁、间隙锁、页锁、悲观锁从对数据库的操作分类&#xff1a;读锁、写锁 乐观锁需要我们自己通过version字段来实现&#xff0c;如果更新失败则在代码中进行where重试。而我们常见的读锁…...

Spring的Async注解线程池扩展方案

目录- [Spring的Async注解线程池扩展方案]- [目录]- [1. 扩展目的]- [2. 扩展实现]- [2.1 扩展Async注解的执行拦截器AnnotationAsyncExecutionInterceptor]- [2.2 扩展Async注解的Spring代理顾问AsyncAnnotationAdvisor]- [2.3 扩展Async注解的 Spring Bean 后置处理器AsyncAn…...

wfb-ng 锁定WiFi接口

wfb-ng 锁定WiFi接口1. 源由2. 需求3. 分析4. 步骤4.1 确认网卡MAC地址4.2 修改udev配置文件4.3 配置重载&重启4.4 确认逻辑网卡接口4.6 修改wfb-ng逻辑WiFi通信接口5. 参考资料6. 补充资料为了更加方便的调试和使用wfb-ng软件&#xff0c;解决由于设备枚举发现时命名可能存…...

Python所有方向的入门和进阶路线,20年老师傅告诉你方法

干了20多年程序员&#xff0c;对于Python研究一直没停过&#xff0c;这几天把我自己对Python的认知和经验&#xff0c;再结合很多招聘网站上的技术要求&#xff0c;整理出了Python所有方向的学习路线图&#xff0c;基本上各个方向应该学什么&#xff0c;都在上面了&#xff0c;…...

RLOAM/RO-LOAM

LOAM框架 LOAM框架包含三个步骤&#xff1a; Scan registration&#xff1a;从原始激光扫描点数据中提取点特征。点特征是角点或者面点。 odometry estimation&#xff1a;在特征提取之后&#xff0c;特征点传递到里程计模块&#xff0c;通过特征匹配和优化步骤计算相对坐标变…...

JUC并发编程之Semaphore-应用与深度源码剖析

目录 JUC并发编程之Semaphore-应用与深度源码剖析 1. Semaphore 是什么&#xff1f; 2.怎么使用Semaphore&#xff1f; 2.1构造方法 2.2 重要方法 2.3 基本使用 需求场景 基础版代码实现 tryAcquire()引入代码实现 acquireUninterruptibly(),acquire()对比代码实现 3.…...

JWT详细介绍使用

一、JWT介绍 JWT是JSON Web Token的缩写&#xff0c;即JSON Web令牌&#xff0c;是一种自包含令牌。 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。 JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息&#xff0c;以便于从资源服务…...

C/C++开发,无可避免的多线程(篇六).线程池封装类

一、线程池概念 线程池是一种多线程处理方式&#xff0c;它包含一个线程工作队列和一个任务队列。当有任务需要处理时&#xff0c;线程池会从线程工作队列中取出一个空闲线程来处理任务&#xff0c;如果线程工作队列中没有空闲线程&#xff0c;则任务会被放入任务队列中等待处理…...

HIVE中如何实现针对IPv6 CIDR的查询

Hive默认情况下不支持IPv6 CIDR查询,因为IPv6 CIDR查询需要使用一些额外的函数。 但是可以通过使用UDF(用户自定义函数)来实现这一点。 IPv6 CIDR表示为网络地址/前缀长度,其中网络地址是一个IPv6地址,前缀长度是一个介于0和128之间的整数,表示网络地址中前多少位是网络…...

【微信小程序】-- 生命周期(二十八)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…...

Kafka 概述

Kafka 概述Broker消费者Kafka 属于分布式的消息引擎系统&#xff0c;主要功能 &#xff1a;提供一套完备的消息发布与订阅解决方案 生产者和消费者都是客户端&#xff08;Clients&#xff09;&#xff1a; 生产者&#xff08;Producer&#xff09;&#xff1a;向主题发布消息…...

详解Java8中如何通过方法引用获取属性名/::的使用

在我们开发过程中常常有一个需求&#xff0c;就是要知道实体类中Getter方法对应的属性名称&#xff08;Field Name&#xff09;&#xff0c;例如实体类属性到数据库字段的映射&#xff0c;我们常常是硬编码指定 属性名&#xff0c;这种硬编码有两个缺点。 1、编码效率低&#x…...

0106广度优先搜索和最短路径-无向图-数据结构和算法(Java)

1 单点最短路径 单点最短路径。 给定一幅图和一个起点s&#xff0c;回答“从s到给定目的顶点v是否存在一条路径&#xff1f;如果有&#xff0c;找出其中最短的那条&#xff08;所含边数最少&#xff09;。“等类似问题。 深度优先搜索在这个问题上没有什么作为&#xff0c;因为…...

僵尸(Zombie)进程

文章目录1.僵尸进程2.产生僵尸进程的原因3.利用 wait 函数销毁僵尸进程4.使用 waitpid 函数销毁僵尸进程1.僵尸进程 进程完成工作后&#xff08;执行完 main 函数中的程序后&#xff09;应被销毁&#xff0c;但有时这些进程将变成僵尸进程&#xff0c;占用系统中的重要资源。这…...

JS实现:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

题目&#xff1a;有一对兔子&#xff0c;从出生后第3个月起每个月都生一对兔子&#xff0c;小兔子长到第三个月后每个月又生一对兔子&#xff0c;假如兔子都不死&#xff0c;问每个月的兔子总数为多少&#xff1f; 数列是 1,1,2,3,5,8,13,21....观察可以看出来从第三个数字开始…...

Verilog如何编写一个基础的Testbench

本文将讲述如何使用Verilog 编写一个基础的测试脚本&#xff08;testbench&#xff09;。在考虑一些关键概念之前&#xff0c;先来看看testbench的架构是什么样的。架构包括建模时间、initial块&#xff08;initial block&#xff09;和任务&#xff08;task&#xff09;。此文…...

实战解析:基于防火墙与三层交换机的企业多业务VLAN安全组网

1. 企业多业务VLAN组网的核心价值 对于200-500人规模的中型企业来说&#xff0c;网络架构就像城市的交通系统。当办公区、研发中心、视频监控、服务器集群等业务单元都挤在同一个"马路"上时&#xff0c;网络拥堵和安全风险就会成为日常噩梦。我去年就遇到过一家制造…...

OpenClaw+百川2-13B-4bits:自媒体人的内容创作流水线搭建

OpenClaw百川2-13B-4bits&#xff1a;自媒体人的内容创作流水线搭建 1. 为什么需要自动化内容流水线 作为一个长期运营科技类自媒体的创作者&#xff0c;我每天需要完成热点追踪、大纲构思、初稿撰写、排版发布等一系列重复性工作。最痛苦的不是写作本身&#xff0c;而是大量…...

NanoPC-T6开发板实战:手把手教你为RK3588编译并烧录Recovery镜像

NanoPC-T6开发板实战&#xff1a;从零构建RK3588 Recovery镜像的完整指南 当你的NanoPC-T6开发板因系统崩溃变成"砖头"时&#xff0c;一个可靠的Recovery镜像就是救命稻草。本文将带你深入Rockchip RK3588平台的恢复系统构建全流程&#xff0c;从工具链准备到最终烧录…...

Beyond Compare 5 终极激活指南:本地密钥生成工具完整教程

Beyond Compare 5 终极激活指南&#xff1a;本地密钥生成工具完整教程 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen Beyond Compare 5 是一款专业的文件对比与合并工具&#xff0c;广泛应用于…...

AI教材生成法宝!低查重完成教材编写,快来获取高性价比方案!

选择AI教材生成工具&#xff0c;摆脱创作难题 在编写教材的过程中&#xff0c;选择合适的工具真是个让人头疼的问题&#xff01;如果用办公软件&#xff0c;功能局限&#xff0c;很多格式和框架都需要自己手动调整&#xff1b;而如果试图使用一些专业的AI写教材工具&#xff0…...

鸿蒙系统深度优化与安全实践指南:基于Magisk的模块化配置方案

鸿蒙系统深度优化与安全实践指南&#xff1a;基于Magisk的模块化配置方案 【免费下载链接】Magisk The Magic Mask for Android 项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk 在移动设备生态中&#xff0c;系统深度优化与安全实践始终是技术探索者追求的核…...

水晶排课 13.9.0.5:专注学校教务排课场景,集智能自动排课、灵活课表调整、多维度视图与便捷输出于一体,高效解决排课冲突,适用于中小学各类教务管理需求。

大家好&#xff0c;我是大飞哥。在学校教务管理中&#xff0c;排课是一项繁琐又容易出错的工作 —— 既要兼顾教师课时、班级需求&#xff0c;又要避免冲突&#xff0c;这款水晶排课 13.9.0.5就是专门解决这些问题的工具&#xff0c;它是一款专业高效的教务排课软件&#xff0c…...

Arduino控制步进电机全攻略:从脉冲计算到加速曲线优化

Arduino控制步进电机全攻略&#xff1a;从脉冲计算到加速曲线优化 引言&#xff1a;为什么需要精准控制步进电机&#xff1f; 在创客和嵌入式开发领域&#xff0c;步进电机因其精准的开环控制特性而广受欢迎。不同于普通直流电机&#xff0c;步进电机能够通过精确控制脉冲数量来…...

终极指南:如何使用Pencil Project实现实时协作原型设计

终极指南&#xff1a;如何使用Pencil Project实现实时协作原型设计 【免费下载链接】pencil The Pencil Projects unique mission is to build a free and opensource tool for making diagrams and GUI prototyping that everyone can use. 项目地址: https://gitcode.com/…...

政务大模型在智能客服中的实践:从架构设计到性能优化

最近在参与一个政务智能客服系统的项目&#xff0c;从零开始基于大模型技术构建了一套服务。政务领域的客服系统和我们常见的电商或通用客服很不一样&#xff0c;它对于准确性、稳定性和安全性的要求极高。今天就来分享一下我们在这个项目中的实践&#xff0c;从架构设计到性能…...