测试面试总结

第一部分:Linux

1、列出 5 个熟悉的 Linux 命令 or 命令+参数,并指明它们能够完成什么操作?

(1)问题分析

考官主要想了解你对 Linux 的操作是否熟练,从而判断你 Linux 基础的操作水平是否

过关。

(2)核心问题讲解

切记不要说你会 ls、cd、pwd、exit 等简单的指令,要讲相对常复杂点的

如何查看 CPU 信息?

cat /proc/meminfo

cat/proc/cpuinfo

如何查看一个文件的末尾 50 行?

查看/etc/profile 的前 10 行内容,应该是:

# head -n 10 /etc/profile

查看/etc/profile 的最后 50 行内容,应该是:

# tail -n 50 /etc/profile

如何过滤文件内容中包含”ERROR“的行?

grep "ERROR" file_name

cat file_name | grep "ERROR"

查看某端口号?

netstat -anp | grep port_number

查看某进程号?

ps -ef | grep ps_name

ps -ef | grep ps_number

创建和删除一个多级目录?

mkdir -p ./a/b

rm -rf ./a

在当前用户家目录中查找 haha.txt 文件?

find ~/ -name haha.txt

如何查询出 tomcat 的进程并杀掉这个进程,写出 Linux 命令?

ps -ef | grep tomcat

kill -9 tomcat_port

动态查看日志文件?

tail -f log_file

查看当前机器 listen 的所有端口?

netstat -tlnp

把一个文件夹打包压缩成.tar.gz 的命令,以及解压拆包.tar.gz 的命令?

tar zcvf xxx.tar.gz file tar zxvf xxx.tar.gz

(3)问题扩展

Linux 中如何利用 shell 脚本条件执行命令?

首先建一个 shell 脚本 start.sh

然后把该脚本放在某个目录下,例如本人放在了/export/songhongwei/soft/sh

编辑~/.profile 文件把 sh 目录添加到环境变量即可

在 shell 或 Linux 终端中可以在任何目录下直接访问该命令

(4)结合项目中使用

在有些数据库 RDS 的测试中,有大量的表单需要生成,有数据库动态需要监控,我们

就可以写 shell 自动操作数据库的脚本来实现。

2、Liunx 查看 tomcat 日志的命令?

题目标签:Linux 命令

试题编号:MS006696

(1)问题分析

考官主要想看你对 Linux 操作细节的把控

(2)核心问题讲解

1)先切换到:cd usr/local/tomcat5/logs

2)tail -f catalina.out

3)这样运行时就可以实时查看运行日志了

(3)问题扩展

Linux 下查看 tomcat 日志的其他方法:

使用 docker

docker logs -f -t --since="2018-06-20" --tail=10 tomcat8080

--since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。

-f : 查看实时日志

-t : 查看日志产生的日期

-tail=10 : 查看最后的 10 条日志。

edu_web_1 : 容器名称

主要弊端是日志非实时。

(4)结合项目中使用

用 tomcat 部署项目

3、你平时工作中,哪些地方用到了 Linux 指令,如何使用的?

(1)问题分析

考官主要想了解你是否有实际工作经验,对 Linux 的日常使用把控如何

(2)核心问题讲解

测试环境搭建和项目部署,会使用常见的 linux 命令,还经常连接 linux 服务器进行

一些基本操作,也会处理一系异常情况。如下:

kill 终止系统进程

格式:kill [参数] [进程号/pid]

参数:-9 无条件强制终止进程

(3)问题扩展

如何一次终止同一名字的多个进程

ps -aux|grep csh

假设得到:

root 1345 1345 ……… /bin/csh

root 2434 2434 ……… /bin/csh

root 3678 3678 ……… grep csh

2.执行 kill 命令:

kill 1345 2434

而如果我们使用 fuser 命令就可以执行:

fuser -k /bin/csh

(4)结合项目中使用

有些时候进程占用端口,需要杀死进程释放端口,需要用到此命令

第二部分:数据库

1、用 SQL 得出每个部门的平均工资?

知识点标签:数据库

试题编号:

(1)问题分析:

考察的是多表查询,表与表之间的关系, 考察分组,聚合函数

(2)核心答案讲解:

对于员工表(employees)的 部门编号字段(department_id) 与 部门表(departments)

的 主键字段(id) 有关联

1)对员工表和部门表联合查询

select *

from employees, departments

where employees.department_id = departments.id;

2)对查询后的数据,进行按照 部门名称 分组

select departments.name

from employees, departments

where employees.department_id = departments.id

group by departments.name;

3)再去求出每个部门的平均薪资

select departments.name, avg(employees.salary)

from employees, departments

where employees.department_id = departments.id

group by departments.name;

使用内连接的方式查询每个部门的平均薪资:

select departments.name, avg(employees.salary)

from employees

inner join departments

on employees.department_id = departments.id

group by departments.name;

(3)问题扩展:

(4)结合项目中使用:

2、创建表?

知识点标签:mysql 基础

试题编号:

(1)问题分析:

1)考试面试者是否掌握了 sql 语句的建表语法

2)考试面试者是否掌握了 sql 语句建表的常见错误

3)考试面试者是否掌握了 mysql 中建表时常用数据类型

4)考试面试者是否掌握了主键设置

(2)核心答案讲解:

1)建表语法

create table 表名(

字段名 类型 约束,

字段名 类型 约束

)

2)建表 5 个常见错误

A)标点符号必须是英文状态下的

B)靠近最后一个括号的语句不能加标点符号

C)不能创建和现有表同名的表

D)类型在约束前面

E)不相关的语句一定要注释掉

3)mysql 中常用数据类型和约束

* 整数 int (没有负数就是无符号)

* 小数 decimal(5,2)

* 字符串 varchar(10)

* 日期时间 datetime

4)建表语句中主键的设置

id int unsigned primary key auto_increment

5)答案

create table stu_info(

no int unsigned primary key auto_increment,

name varchar(10),

age int unsigned,

score decimal(4,1),

grade int unsigned

)

(3)问题扩展:

(4)结合项目中使用:

3、请写出一个 SQL 语句来查询分数前 5 的所有人?

知识点标签:mysql 基础

试题编号:

(1)问题分析:

1)考察你对取值命令limit的应用

2)考察你对order by命令的使用

3)考察你对 SQL 语句中的命令顺序的掌握程度

(2)核心答案讲解:

1)limit`命令的应用

limit 用法 1:限定查询记录(从第一条到指定的数量)

select * from 表名 limit 5

limit 用法 2: 获取指定区间的数据(从第一条到指定的数量)

select * from 表名 limit 0,5

2) order by命令的使用

select * from 表名 order by 列 1 asc|desc,列 2 asc|desc,..

-- asc 从小到大排列,即升序(升序是默认的,也就意味着可写可不写)

-- desc 从大到小排序,即降序

3)SQL 语句中的命令顺序

select *

from 表名

where 条件 1

group by 依据列

having 条件 2

order by 依据列

limit 0,1

4)答案:

select * from students order by score desc limit 5

(3)问题扩展:

(4)结合项目中使用:

4、请用一条语句统计:2019 年 10 月份所有员工的请假天数?

知识点标签:mysql 基础

(1)问题分析:

1)考察面试者是否掌握了 sql 语句两表连接查询方法

2)考察面试者是否掌握了范围查询使用方法

3)考察面试者是否掌握了求统计数据的聚合函数的使用方法

(2)核心答案讲解:

1)两表连接查询方法

解题思路:

select * from

将题目中的所求字段所在的表做为数据源(放在 from 后面的表,就叫数据源)

找两表中意义相同的字段,进行相等,进行连接

如果有条件,将过滤条件放在 where 后面

将题目的所求字段放在 select 后面,替换*

2) 范围查询使用方法

范围查询

in 表示在一个非连续的范围内(使用频率非常高)

between ... and ...表示在一个连续的范围内 意味着只能接连接类型字段 注意点:小值

放在前面,大值放在后面

3)聚合函数的使用方法

A)常见聚合函数有哪些?

求个数:count(*)

求总和:sum

求最大值:max

求最小值:min

求平均值:avg

B)聚合函数如何使用?

所有的聚合方式使用都是 函数名(字段) 对这一个字段进行聚合

4)答案:

select sum(l_days) from e_info as e inner join leave_info as l on e.e_id=l.e_id

where l_date between "2019-10-1" and "2019-10-31"

(3)问题扩展:

(4)结合项目中使用:

5、写 SQL 查询成绩小于 60 分的所有学生名单?

知识点标签:mysql

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值