前面为了面试,总结了一些资料,放在这里分享给大家。
1、sql语句
1、查询某条件下的所有语句
select *from dbtable where id =1
2、求和
select sum(sore) from dbtable where name="a"
3、求平均数
select avg(sore) from dbtable where name='a'
4、求最小值
select min(sore) from dbtable where name='a'
5、求最大值
select max(sore) from dbtable where name='a'
6、对查询结果排序
select *from dbtables where name='xx' order by score desc
7、求总数,未去重
select count(name) from datable
8、根据一个或者多个字段进行分组统计
统计每个班19岁以上的学生人数
select calss,count(age) from dbtable where age > 19 group by classs
9、多表联查
select a.*,b.address from student a join info b on a.id=b.id
10、嵌套查询
select *from dbtable where id in (select id from dbtable where name >2)
11、分页
select *from dbtable order by id desc limit 0,10
12、去重查询:
DISTINCT 用于返回不同的值,去掉重复的值 distinct
SELECT DISTINCT 字段名 FROM 表名
2.增删改 语句
1、插入多条语句
insert into dbtables values (x,x,x,x,x,x,),(x,x,x,x,x)
2、修改某个字段值
updata dbtables set score=98 where name ='aaa'
3、删除某条信息
delete from dbtables where name ='a'
问题1.左连接、右链接、内联、外联有什么区别
linux基本命令
1、性能相关命令
top free df -h
2、切换root权限
sudo -i
3、查看历史操作命令
history
4、查看文件夹下每个文件夹的大小
du -max -depth =1 -h
5、查找文件 find /-name 文件名称
6、实时查看日志 tail -f 文件名称
7、打开某文件内容 cat/vi
8、查看文件夹下有哪些问题 ls ll ,隐藏文件ls -la
9、复制文件 cp a.txt 原文件路径 b.txt复制到新文件路径
10、删除文件 rm -rf 文件名
11、给文件配置权限 chomd 文件名 733
12、杀死进程 kill -9 进程id
13、查看进程号 ps -ef|grep xxx
python基础
1、切片

切片操作基本表达式:object[start_index:end_index:step]
step:正负数均可,其绝对值大小决定了切取数据时的‘‘步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。当step省略时,默认为1,即从左往右以步长1取值。“切取方向非常重要!”“切取方向非常重要!”“切取方向非常重要!”,重要的事情说三遍!
start_index:表示起始索引(包含该索引对应值);该参数省略时,表示从对象“端点”开始取值,至于是从“起点”还是从“终点”开始,则由step参数的正负决定,step为正从“起点”开始,为负从“终点”开始。
end_index:表示终止索引(不包含该索引对应值);该参数省略时,表示一直取到数据“端点”,至于是到“起点”还是到“终点”,同样由step参数的正负决定,step为正时直到“终点”,为负时直到“起点”。
2、文件基本操作
3、排序相关
4、python基础10大问题
1、求出1-100之间的和
2、冒泡排序
3、数字排序
4、写出常用的python库
我们做测试的常用的肯定是与测试有关的喽
requests--接口自动化
selenium--web的UI自动化
appium--app的UI自动化
re ---正则表达式
5、python的数据类型
整型--int
布尔型--bool
字符串--str
列表--list
元组--tuple
字典--dict
6、python2与python3的区别
安静来看python2和python3的最大区别就是编码问题了
python2中使用ascii编码,python3中使用utf-8编码
7、python的可变数据类型和不可变数据类型
不可变数据类型:数值型、字符串型string和元组tuple
不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象
可变数据类型:列表list和字典dict;
允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。
8、在编辑python脚本的时候遇到bug怎么解决
1、通过print()进行调试,看看哪里出了问题
2、如果是第三方库的书写问题,查找文档,
9、python如何操作Excel表
第3方库xlwr和xlrd
其中xlwr是对Excel进行写,xlrd是对Excel进行读
10、*arg和*kwarg的作用
简单的来说就是可以是我们的函数引入多个实参
*arg返回的是字典
*kwarg返回的是元祖
11、python通过什么连接数据库
python2通过MYSQL-python
python3通过pyMysql
12、我们通过编写自动化测试的过程通过什么保存数据
通过yaml或者是ini
13、装饰器是什么
装饰器是为已经存在的函数或者对象添加额外的功能。本质上是一个闭包函数(闭包函数:本质是个嵌套函数,内层函数引用外层函数的变量并且返回外层函,外层函数返回内层函数)
14、装饰器的作用
1.不修改已有函数的源代码
2.不修改已有函数的调用方式
3.为已有函数添加额外的功能
15、列表去重
16、lambda函数实现两个数相乘
17、python两个数值交换
18、如何提高python的运行效率
1、使用生成器,因为可以节约大量内存
2、循环代码优化,避免过多重复代码的执行
3、核心模块用Cython PyPy等,提高效率
4、多进程、多线程、协程
5、多个if elif条件判断,可以把最有可能先发生的条件放到前面写,这样可以减少程序判断的次数,提高效率
19、如何生成一个随机数?
通过random模块
20、如何判断是函数还是方法
通常来说类中的函数为方法,类外面声明def为函数
常见面试问题:
1、用户从输入url到显示页面过程发生了什么
dns解析,域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成
tcp连接,连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务
发送http请求
服务器处理请求并返回http报文
浏览器解析渲染页面
链接结束
2、http状态码含义
1标识信息,2标识成功,3标识充定向 4标识客户端错误 5标识服务端错误
3、影响深刻的bug
进程原因导致bugtoken失效报错
4、性能测试中你会关注那几个指标
响应速度,吞吐量,出成率以及服务器相关内存,cpu,i/0
5、
1、如何统计日志中某个字段出现的次数
2、替换给定文件中的特定字符“abc”为“ABC”
3、tail和cat的区别
4、查看一个文件内容,把“#”开头的内容不展示,空格开头的内容不展示,把内容生成到一个新的文件a.txt中