本专题聚焦于软件测试和自动化测试领域的面试题目探讨和分析,旨在帮助读者深入理解并掌握相关知识,提高面试技巧。
本资料是网络收集整理而成,在编写过程中增加了原资料缺失的部分内容,并公开分享以供学习使用,请仅限个人研究和学习用途,不得用于转卖或其他盈利活动。
该套资源通过公开渠道搜集并改编,涵盖了UI自动化测试、接口自动化测试以及Python等常见的面试题。包括编程语法题、编码题及评估自动化基础能力和项目实战能力的模块内容,适合软件测试行业的人员阅读与学习参考。
由于作者水平有限,资料可能存在不足之处,请读者自行纠正和完善。后期会持续更新相关资源,帮助更多同行共同成长进步。
### 软件测试-自动化测试-自动化面试知识点详解
#### 一、Python基础知识
1. **数据类型**
- Python 提供多种内置的数据类型:
- 整型(数字):`int`
- 字符串:`str`
- 元组:`tuple`
- 列表:`list`
- 字典:`dict`
- 布尔类型: `bool`
2. **字典的合并**
- 使用 `update()` 方法可以将一个字典中的所有键值对添加到另一个字典中。
3. **JSON与Python交互**
- 将 JSON 字符串转换为 Python 对象使用 `json.loads()`
- 从文件读取 JSON 数据并转成 Python 对象用`json.load()`
- 把 Python 对象转化为 JSON 格式字符串采用 `json.dumps()`
- 将 Python 对象写入到文件中保存为 JSON 格式的数据使用 `json.dump()`
4. **构造函数与工厂方法**
- 类的实例化首先调用的是`__new__` 方法,它负责创建并返回实例。
- 实例创建之后会执行 `__init__` 方法进行初始化。
5. **可变类型和不可变类型**
- 可变数据类型:
- 列表 (`list`)
- 字典 (`dict`)
- 不可变数据类型:
- 整型 (`int`)
- 浮点数 (`float`)
- 字符串 (`str`)
- 元组 (`tuple`)
6. **MySQL注入**
在 MySQL 中写入一句话木马通常需要以下条件:
1. `secure-file-priv` 设置为空,允许写入文件。
2. 用户具有足够的权限(如 root 权限)。
3. 应用程序具备写入文件的能力,并且已获取应用程序的绝对路径及该目录可写的特性。
#### 二、Python高级特性
1. **深拷贝与浅拷贝**
- 对于不可变数据类型,两者结果相同都会创建新的副本。
- 可变数据类型:
- 浅拷贝只会复制对象引用。
- 深拷贝会递归地创建完整的新副本。
2. **`*args`和`**kwargs`**
- `*args`: 处理位置参数的不定数量输入。
- `**kwargs`: 处理关键字参数的不定数量输入。
3. **重写与重载**
1. 重写: 子类覆盖父类的方法。
2. Python 不直接支持方法重载,但可以通过默认参数和`*args`, `**kwargs` 实现类似效果。
4. **获取数据库表**
- 使用第三方库(如 pymysql)连接数据库并执行 SQL 查询以获取所有表名:
```python
import pymysql
conn = pymysql.connect(host=localhost, user=root, password=password, db=database)
cursor = conn.cursor()
# 获取所有表名
cursor.execute(SHOW TABLES)
tables = cursor.fetchall()
print(tables)
# 关闭连接
cursor.close()
conn.close()
```
5. **方法定义的不同**
- 对象方法:需要实例化的对象来调用,第一个参数通常是 `self`。
- 类方法:使用 `@classmethod` 装饰器定义,第一个参数是类本身 (`cls`)。
- 静态方法:采用 `@staticmethod` 定义的函数不需要特定的对象或类即可调用。
6. **SQL查询**
1. 连表查询:
```sql
SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id;
```
2. 去重查询:
```sql
SELECT DISTINCT column_name FROM table_name;
```
3. 查询重复数据:
```sql
SELECT column_name FROM table_name GROUP BY column_name HAVING COUNT(column_name) > 1;
```
7. **Python单例模式**