当前位置:首页>面试题库>测试人员超实用面试题库(续)

测试人员超实用面试题库(续)

  • 2026-04-01 02:34:43
测试人员超实用面试题库(续)

自动化测试进阶篇

自动化测试失败如何排查?

答案:

排查步骤:

1. 查看错误日志 → 2. 重现问题 → 3. 检查环境 → 4. 检查数据 → 5. 检查代码

常见原因及解决:

原因
表现
解决方案
元素定位失败
NoSuchElementException
检查定位器、添加等待
超时
TimeoutException
增加等待时间、优化网络
环境变化
配置错误
检查环境配置、更新数据
数据问题
断言失败
检查测试数据、清理环境
代码bug
脚本错误
调试代码、修复逻辑

调试技巧:

# 添加截图driver.save_screenshot('error.png')# 添加日志logging.info(f"当前页面:{driver.current_url}")# 断点调试import pdb; pdb.set_trace()

如何处理动态元素定位?

答案:

方法一:XPath 轴定位# 根据文本内容定位//button[contains(text(), '提交')]# 根据属性部分匹配//input[contains(@id'username')]# 根据层级关系//div[@class='form']//input[@type='text']方法二:CSS 选择器# 属性包含input[id*='user']# 属性开头input[id^='username']# 属性结尾input[id$='input']方法三:相对定位# 根据相邻元素定位//label[text()='用户名']/following-sibling::input# 根据父元素定位//div[@class='form']/descendant::input方法四:等待策略# 显式等待元素出现wait.until(EC.presence_of_element_located((By.ID, "username")))# 等待元素可点击wait.until(EC.element_to_be_clickable((By.ID, "submit")))

数据驱动测试如何实现?

答案:

方法一:CSV 文件import csvimport pytest@pytest.fixture(params=list(csv.reader(open('data.csv'))))def login_data(request):    return request.paramdef test_login(login_data):    username, password, expected = login_data    login_page.login(username, password)    assert login_page.get_result() == expected方法二:Excel 文件import openpyxldef load_excel_data():    wb = openpyxl.load_workbook('data.xlsx')    sheet = wb.active    data = []    for row in sheet.iter_rows(min_row=2, values_only=True):        data.append(row)    return data方法三:JSON 文件import jsonwith open('data.json''r'as f:    test_data = json.load(f)@pytest.mark.parametrize("case", test_data)def test_api(case):    response = request_api(case['url'], case['method'])    assert response.status_code == case['expected_code']方法四:YAML 文件# data.yaml- name: 登录成功  username: test  password: 123456  expected: success- name: 登录失败  username: test  password: wrong  expected: fail

自动化测试框架如何设计?

答案:

框架分层架构:

┌─────────────────────────────────────────┐│              测试用例层                   ││         (test_cases/)                    │├─────────────────────────────────────────┤│              业务逻辑层                   ││         (pages/actions/)                 │├─────────────────────────────────────────┤│              基础封装层                   ││         (base/utils/)                    │├─────────────────────────────────────────┤│              配置层                       ││         (config/)                        │├─────────────────────────────────────────┤│              数据层                       ││         (data/)                          │└─────────────────────────────────────────┘

目录结构:

automation/├── config/           # 配置文件├── common/           # 公共方法├── pages/            # 页面对象├── test_cases/       # 测试用例├── data/             # 测试数据├── reports/          # 测试报告├── logs/             # 日志文件├── conftest.py       # pytest配置└── requirements.txt  # 依赖包

如何提高自动化测试稳定性?

答案:

最佳实践:

方面
措施
元素定位
使用稳定定位器,避免动态ID
等待机制
使用显式等待,避免硬编码sleep
测试数据
数据隔离,每次测试独立数据
环境管理
独立测试环境,避免干扰
异常处理
添加重试机制,捕获异常截图
用例设计
用例独立,无依赖关系
日志记录
详细日志,便于问题排查

重试机制示例:

from flaky import flaky@flaky(max_runs=3, min_passes=1)def test_unstable_feature():    # 不稳定测试,最多重试3次    assert do_something() == expected‍

接口测试进阶篇

接口认证方式有哪些?

答案:

认证方式
说明
安全性
Basic Auth
用户名密码Base64编码
⭐⭐
Token认证
JWT/自定义Token
⭐⭐⭐⭐
OAuth 2.0
第三方授权
⭐⭐⭐⭐⭐
API Key
API密钥
⭐⭐⭐
Session
会话Cookie
⭐⭐⭐
HMAC
签名认证
⭐⭐⭐⭐⭐

Token 认证示例:

# 获取Tokendef get_token():    resp = requests.post('/login', json={        'username''test',        'password''123456'    })    return resp.json()['token']# 使用Tokenheaders = {'Authorization': f'Bearer {token}'}requests.get('/api/data', headers=headers)

接口幂等性如何测试?

答案:

幂等性定义: 同一操作多次执行结果相同。

测试方法:

def test_create_order_idempotent():    order_id = generate_order_id()    # 第一次请求    resp1 = create_order(order_id)    # 第二次请求(相同参数)    resp2 = create_order(order_id)    # 验证只创建了一个订单    assert resp1['order_id'] == resp2['order_id']    assert get_order_count() == 1

实现方式:

唯一请求ID

数据库唯一约束

Token 机制

状态机控制

接口版本管理如何测试?

答案:

版本管理方式:

# URL 路径

/api/v1/users

/api/v2/users

# 请求头

Accept: application/vnd.api.v1+json

# 查询参数

/api/users?version=1

测试要点:

各版本接口独立测试

版本兼容性测试

版本迁移测试

旧版本废弃通知

测试用例:

def test_api_version():    # v1 版本    resp1 = requests.get('/api/v1/users')    assert resp1.status_code == 200    # v2 版本    resp2 = requests.get('/api/v2/users')    assert resp2.status_code == 200    # 验证返回数据结构差异    assert 'new_field' in resp2.json()['data'][0]

接口限流如何测试?

答案:

测试方法:

def test_rate_limit():    url = '/api/data'    success_count = 0    limit_count = 0    # 发送100个请求    for i in range(100):        resp = requests.get(url)        if resp.status_code == 200:            success_count += 1        elif resp.status_code == 429:            limit_count += 1    # 验证限流生效    assert limit_count > 0    print(f"成功:{success_count}, 限流:{limit_count}")

验证要点:

限流阈值是否正确

限流后返回状态码(429)

限流提示信息

限流时间窗口

限流后恢复‍

接口 Mock 测试如何实现?

答案:

方法一:unittest.mockfrom unittest.mock import Mock, patch@patch('requests.get')def test_with_mock(mock_get):    mock_get.return_value.status_code = 200    mock_get.return_value.json.return_value = {'data''test'}    result = call_api()    assert result == 'test'方法二:pytest-mockdef test_with_pytest_mock(mocker):    mocker.patch('module.func', return_value='mocked')    result = module.func()    assert result == 'mocked'方法三:Mock Server# 使用 WireMock/MockServer# 配置期望请求和响应# 测试时请求 Mock 服务方法四:Flask 搭建 Mockfrom flask import Flask, jsonifyapp = Flask(__name__)@app.route('/api/users')def mock_users():    return jsonify({'users': []})app.run(port=5000)‍

性能测试进阶篇

性能测试场景如何设计?

答案:

场景设计要素:

1. 用户模型:用户类型、比例、行为

2. 负载模型:并发数、ramp-up、持续时间

3. 数据模型:测试数据量、数据分布

4. 环境模型:硬件、网络、配置

典型场景:

场景
并发用户
持续时间
目的
基准测试
1-10
5分钟
建立性能基线
负载测试
预期并发
30分钟
验证预期负载
压力测试
逐步增加
直到失败
找出瓶颈
稳定性测试
预期并发
24小时+
验证稳定性
峰值测试
瞬间高并发
5分钟
验证峰值处理

性能测试监控指标有哪些?

答案:

应用层:

QPS/TPS(每秒请求/事务数)

响应时间(平均、P95、P99)

错误率

成功率

系统层:

CPU 使用率

内存使用率

磁盘 I/O

网络带宽

中间件层:

数据库连接数

缓存命中率

消息队列积压

JVM GC 情况

监控工具:

# CPUtop -H -p# 内存free -h# 磁盘IOiostat -x 1# 网络netstat -an | grep ESTABLISHED | wc -l# JVMjstat -gc1000

如何分析性能测试报告?

答案:

分析步骤:

1. 查看整体指标 → 2. 识别瓶颈 → 3. 定位原因 → 4. 提出建议

关键指标分析:

指标
正常值
异常处理
响应时间
< 2s
优化代码/增加资源
TPS
满足业务需求
优化架构/水平扩展
CPU
< 70%
优化代码/增加CPU
内存
< 80%
修复泄漏/增加内存
错误率
< 0.1%
修复bug/增加容错

报告模板:

1. 测试概述

2. 环境配置

3. 测试场景

4. 结果汇总

5. 瓶颈分析

6. 优化建议

7. 风险评估

数据库性能如何优化?

答案:

优化方法:

方面
优化措施
SQL 优化
避免 SELECT *、使用索引、减少 JOIN
索引优化
添加合适索引、删除冗余索引
表结构
合理分表、分区、归档历史数据
配置优化
调整连接池、缓冲池大小
架构优化
读写分离、主从复制、分库分表
缓存
Redis 缓存热点数据
慢查询分析:-- 开启慢查询日志SET GLOBAL slow_query_log = 'ON';SET GLOBAL long_query_time = 1;-- 查看慢查询SHOW SLOW LOG;-- 分析查询计划EXPLAIN SELECT * FROM users WHERE email = 'test@example.com';

缓存性能如何测试?

答案:

测试内容:

缓存命中率

缓存穿透测试

缓存击穿测试

缓存雪崩测试

缓存一致性测试

测试方法:

def test_cache_hit_rate():    # 第一次请求(缓存未命中)    resp1 = get_data('key1')    # 第二次请求(缓存命中)    resp2 = get_data('key1')    # 验证缓存命中    assert resp1 == resp2    assert cache.get('key1'is not Nonedef test_cache_penetration():    # 查询不存在的数据    for i in range(1000):        get_data(f'non_exist_{i}')    # 验证数据库压力    assert db_query_count < threshold‍

安全测试进阶篇

如何测试文件上传漏洞?

答案:

测试方法:

测试类型
测试内容
文件类型
上传 exe、php、jsp 等可执行文件
文件扩展名
修改扩展名绕过验证
文件内容
修改文件头绕过验证
文件大小
上传超大文件
文件名
特殊字符、路径遍历
并发上传
大量文件同时上传

测试用例:

def test_file_upload():    # 正常文件    upload_file('test.jpg''image/jpeg')    # 恶意文件    upload_file('test.php''image/jpeg')  # 扩展名绕过    # 超大文件    upload_file('large.zip', size='1GB')    # 路径遍历    upload_file('../../../etc/passwd')

防护措施:

白名单验证文件类型

文件内容检测

重命名文件

存储到非 Web 目录

限制文件大小

如何测试身份认证安全?

答案:

测试要点:

测试项
测试内容
密码策略
长度、复杂度、历史记录
登录限制
失败次数限制、锁定时间
会话管理
超时、注销、并发登录
多因素认证
短信、邮箱、TOTP
密码找回
流程安全、Token 有效期
单点登录
Token 安全、注销同步

测试用例:

def test_auth_security():    # 暴力破解测试    for i in range(10):        login('admin'f'password{i}')    # 验证账户锁定    resp = login('admin''password10')    assert resp['locked'] == True    # 会话超时测试    time.sleep(3600)    resp = get_protected_resource()    assert resp.status_code == 401

如何测试 API 安全?

答案:

测试清单:

□ 认证授权验证

□ 输入参数验证

□ 输出数据过滤

□ 速率限制测试

□ 敏感信息加密

□ 日志审计

□ CORS 配置

□ HTTP 方法限制

□ 版本安全

□ 错误信息处理

测试示例:

def test_api_security():    # 未授权访问    resp = requests.get('/api/users')    assert resp.status_code == 401    # 越权访问    resp = requests.get('/api/users/1', headers=user2_token)    assert resp.status_code == 403    # SQL 注入    resp = requests.get('/api/users?id=1 OR 1=1')    assert resp.status_code == 400    # 敏感信息    resp = requests.get('/api/users/1')    assert 'password' not in resp.json()

如何测试数据加密?

答案:

测试内容:

传输加密(HTTPS/TLS)

存储加密(数据库加密)

敏感字段加密(密码、身份证)

密钥管理

加密算法强度

测试方法:

def test_data_encryption():    # 检查 HTTPS    assert url.startswith('https://')    # 检查密码加密    user = get_user('test')    assert user['password'] != 'plaintext'    assert len(user['password']) >= 60  # bcrypt    # 检查敏感信息    resp = get_api('/users')    assert 'id_card' not in resp.json() or is_encrypted(resp.json()['id_card'])    # 检查 SSL 配置    ssl_info = check_ssl('example.com')    assert ssl_info['protocol'] == 'TLSv1.2'

安全测试工具如何使用?

答案:

工具
用途
命令示例
Burp Suite
渗透测试
代理抓包、扫描
OWASP ZAP
安全扫描
zap-cli quick-scan
SQLMap
SQL 注入
sqlmap -u "url"
Nmap
端口扫描
nmap -sV target
Nikto
Web 扫描
nikto -h target
Dirb
目录扫描
dirb http://target

Burp Suite 使用流程:

1. 配置浏览器代理 → 2. 拦截请求 → 3. 修改参数 → 4. 发送请求 → 5. 分析响应‍

CI/CD 进阶篇

Jenkins 如何配置参数化构建?

答案:

配置步骤:

勾选"参数化构建过程"

添加参数(字符串、选择、布尔值等)

在构建脚本中使用参数

参数类型:

// 字符串参数parameters {    string(name: 'VERSION', defaultValue: '1.0', description: '版本号')}// 选择参数parameters {    choice(name'ENV'choices: ['dev''test''prod'], description'环境')}// 布尔参数parameters {    booleanParam(name'DEPLOY'defaultValuetruedescription'是否部署')}使用参数:steps {    sh "echo 版本号:${VERSION}"    sh "echo 环境:${ENV}"    if (env.DEPLOY == 'true') {        sh './deploy.sh'    }}Git 分支策略有哪些?答案:Git Flow:main (生产)  ↑release (发布)  ↑develop (开发)  ↑feature (功能)  hotfix (修复)GitHub Flow:main (主分支)  ↑feature (功能分支,直接合并到 main)GitLab Flow:main → pre-production → production  ↑feature

最佳实践:

主分支保护

代码审查

自动化测试

小步提交

清晰命名

如何配置自动化测试流水线?

答案:

Jenkins Pipeline 示例:pipeline {    agent any    environment {        PYTHON_VERSION = '3.9'    }    stages {        stage('准备环境') {            steps {                sh 'python -V'                sh 'pip install -r requirements.txt'            }        }        stage('代码扫描') {            steps {                sh 'flake8 src/'                sh 'pylint src/'            }        }        stage('单元测试') {            steps {                sh 'pytest tests/unit/ --cov=src'            }            post {                always {                    junit 'reports/*.xml'                    publishHTML(target: [                        reportDir'htmlcov',                        reportFiles'index.html',                        reportName'覆盖率报告'                    ])                }            }        }        stage('接口测试') {            steps {                sh 'pytest tests/api/'            }        }        stage('UI 测试') {            steps {                sh 'pytest tests/ui/ --browser=chrome'            }        }    }    post {        success {            echo '测试通过!'        }        failure {            echo '测试失败!'            // 发送通知        }    }}

如何集成测试报告?

答案:

pytest 报告:# HTML 报告pytest --html=report.html --self-contained-html# XML 报告(Jenkins 兼容)pytest --junitxml=report.xml# 覆盖率报告pytest --cov=src --cov-report=htmlAllure 报告:# 生成报告pytest --alluredir=./allure-results# 查看报告allure serve ./allure-resultsJenkins 配置:post {    always {        // JUnit 报告        junit 'reports/*.xml'        // HTML 报告        publishHTML(target: [            reportDir'htmlcov',            reportFiles'index.html',            reportName'测试报告'        ])        // Allure 报告        allure([includePropertiesfalsejdk''results: [[path'allure-results']]])    }}

如何配置质量门禁?

答案:

门禁指标:

指标
阈值
处理方式
测试通过率
100%
失败则阻断
代码覆盖率
> 80%
警告/阻断
严重缺陷数
0
失败则阻断
代码规范
无 Error
警告/阻断
安全扫描
无高危
失败则阻断
Jenkins 配置:stage('质量门禁') {    steps {        script {            // 检查测试通过率            def testResult = junit allowEmptyResultstruetestResults'reports/*.xml'            if (testResult.failCount > 0) {                error '测试未通过'            }            // 检查覆盖率            def coverage = sh(script'coverage report'returnStdouttrue)            if (coverage.toInteger() < 80) {                error '覆盖率不足 80%'            }        }    }}‍

数据库进阶篇

如何测试数据迁移?

答案:

测试要点:

数据完整性验证

数据准确性验证

迁移性能测试

回滚方案验证

业务功能验证

测试方法:

-- 数据量对比SELECT COUNT(*FROM old_table;SELECT COUNT(*FROM new_table;-- 数据抽样对比SELECT * FROM old_table WHERE id IN (11001000);SELECT * FROM new_table WHERE id IN (11001000);-- 聚合数据对比SELECT SUM(amount) FROM old_orders;SELECT SUM(amount) FROM new_orders;-- 关联关系验证SELECT COUNT(*FROM orders oJOIN users u ON o.user_id = u.id;

如何测试存储过程?

答案:

测试内容:

输入参数验证

输出结果验证

异常处理验证

性能测试

并发测试

测试示例:

-- 正常场景CALL sp_create_order('user1'100@order_id);SELECT @order_id;-- 异常场景CALL sp_create_order(''100@order_id);  -- 空用户CALL sp_create_order('user1'-100@order_id);  -- 负金额-- 验证结果SELECT * FROM orders WHERE user_id = 'user1' ORDER BY created_at DESC LIMIT 1;

如何测试数据库锁?

答案:

测试场景:

行锁测试

表锁测试

死锁测试

锁超时测试

测试方法:

-- 会话 1START TRANSACTION;UPDATE users SET balance = balance - 100 WHERE id = 1;-- 不提交-- 会话 2START TRANSACTION;UPDATE users SET balance = balance + 100 WHERE id = 1;-- 应该被阻塞-- 查看锁信息SELECT * FROM information_schema.innodb_locks;SELECT * FROM information_schema.innodb_lock_waits;

-- 死锁测试(两个会话互相锁)

如何测试主从复制?

答案:

测试内容:

数据同步延迟

数据一致性

故障切换

读写分离

测试方法:

-- 主库写入INSERT INTO users (name) VALUES ('test');-- 从库查询(验证延迟)SELECT * FROM users WHERE name = 'test';-- 检查复制状态SHOW SLAVE STATUS\G-- 故障切换测试-- 停止主库,验证从库提升

MongoDB 测试要点?

答案:

测试内容:

CRUD 操作

索引测试

聚合查询

副本集测试

分片测试

数据一致性

测试示例:

// 插入数据db.users.insertOne({name'test'age25})// 查询数据db.users.find({age: {$gt18}})// 索引测试db.users.createIndex({name1})db.users.find({name'test'}).explain('executionStats')// 聚合查询db.orders.aggregate([    {$group: {_id'$user_id'total: {$sum'$amount'}}}])‍

Linux 进阶篇

如何分析系统性能?

答案:

性能分析命令:

# CPUtophtopmpstat 1# 内存free -hvmstat 1# 磁盘iostat -x 1df -hdu -sh /*# 网络netstat -anss -siftop# 进程ps aux --sort=-%cpulsof -p# 系统负载uptimew

性能分析流程:

1. 查看系统负载 → 2. 定位资源瓶颈 → 3. 分析进程 → 4. 查看日志 → 5. 提出优化

如何查看和分析日志?

答案:

日志查看命令:# 实时查看tail -f /var/log/app.log# 搜索关键字grep "ERROR" /var/log/app.log# 搜索并统计grep "ERROR" /var/log/app.log | wc -l# 查看上下文grep -C 5 "ERROR" /var/log/app.log# 按时间范围sed -n '/2024-01-01 10:00/,/2024-01-01 11:00/p' /var/log/app.log# 多文件搜索grep -r "ERROR" /var/log/# 日志轮转查看zcat /var/log/app.log.1.gz | grep "ERROR"日志分析工具:ELK Stack(Elasticsearch+Logstash+Kibana)SplunkGraylog如何排查端口问题?答案:排查命令:# 查看端口占用netstat -tlnp | grep 8080ss -tlnp | grep 8080lsof -i :8080# 测试端口连通性telnet 192.168.1.1 8080nc -zv 192.168.1.1 8080curl -v http://192.168.1.1:8080# 查看防火墙firewall-cmd --list-portsiptables -L -n# 开放端口firewall-cmd --add-port=8080/tcp --permanentfirewall-cmd --reload如何排查内存泄漏?答案:排查步骤:# 1. 查看内存使用free -htop# 2. 查看进程内存ps aux --sort=-%mem | head -10# 3. 查看进程详情cat /proc//status# 4. Java 应用jmap -heapjstat -gc1000# 5. 生成堆转储jmap -dump:format=b,file=heap.hprof# 6. 分析堆转储jhat heap.hprof如何编写 Shell 监控脚本?答案:监控脚本示例:#!/bin/bash# CPU 监控cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}')if (( $(echo "$cpu_usage > 80" | bc -l) )); then    echo "CPU 使用率过高:$cpu_usage%" | mail -s "告警" admin@example.comfi# 内存监控mem_usage=$(free | grep Mem | awk '{printf("%.2f", $3/$2 * 100.0)}')if (( $(echo "$mem_usage > 80" | bc -l) )); then    echo "内存使用率过高:$mem_usage%" | mail -s "告警" admin@example.comfi# 磁盘监控disk_usage=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')if [ $disk_usage -gt 80 ]; then    echo "磁盘使用率过高:$disk_usage%" | mail -s "告警" admin@example.comfi# 服务监控if ! systemctl is-active --quiet nginx; then    echo "Nginx 服务异常" | mail -s "告警" admin@example.com    systemctl restart nginxfi

场景实战进阶篇

如何测试分布式系统?

答案:

测试要点:

服务发现测试

负载均衡测试

熔断降级测试

分布式事务测试

数据一致性测试

链路追踪测试

测试场景:

1. 单节点故障 → 验证自动切换

2. 网络分区 → 验证容错处理

3. 高并发 → 验证负载均衡

4. 服务超时 → 验证熔断机制

5. 数据同步 → 验证一致性

如何测试消息队列?

答案:

测试内容:

消息发送/接收

消息持久化

消息顺序性

消息重复处理

消息积压处理

死信队列

测试方法:

def test_message_queue():    # 发送消息    producer.send('topic', {'data''test'})    # 接收消息    message = consumer.receive(timeout=5)    assert message['data'] == 'test'    # 验证消息持久化    restart_broker()    message = consumer.receive(timeout=5)    assert message is not None    # 验证消息积压    for i in range(1000):        producer.send('topic', {'id': i})    # 验证消费速度    assert consume_all() == 1000

如何测试微服务架构?

答案:

测试层次:

┌─────────────────────────────────────────┐│           端到端测试                      │├─────────────────────────────────────────┤│           集成测试                        │├─────────────────────────────────────────┤│           契约测试                        │├─────────────────────────────────────────┤│           单元测试                        │└─────────────────────────────────────────┘

测试重点:

服务间接口测试

服务注册发现

配置中心测试

链路追踪测试

熔断降级测试

分布式事务测试

如何测试云原生应用?

答案:

测试内容:

容器化测试

Kubernetes 部署测试

服务网格测试

自动扩缩容测试

配置管理测试

秘密管理测试

测试工具:

Testcontainers

Kind/Minikube

Istio

Helm

如何测试大数据平台?

答案:

测试内容:

数据采集测试

ETL 流程测试

数据存储测试

数据计算测试

数据展示测试

数据质量测试

测试方法:

def test_data_pipeline():    # 验证数据源    assert source_data_count > 0    # 验证 ETL 处理    etl_job.run()    assert etl_job.status == 'SUCCESS'    # 验证数据质量    assert data_quality_score > 0.95    # 验证数据一致性    assert source_count == target_count    # 验证数据处理性能    assert processing_time < threshold‍

故障排查篇

容器无法启动如何排查?

答案:

排查步骤:# 1. 查看容器状态docker ps -a# 2. 查看容器日志docker logs# 3. 查看容器详情docker inspect# 4. 进入容器调试docker run -it --entrypoint /bin/bash # 5. 检查资源限制docker stats# 6. 检查网络配置docker network inspect# 7. 检查存储卷docker volume ls

常见原因:

原因
表现
解决
镜像问题
拉取失败
检查镜像名称/网络
端口冲突
启动失败
更换端口
资源不足
OOM
增加资源
配置错误
启动报错
检查配置文件
权限问题
访问拒绝
检查权限设置

接口超时如何排查?

答案:

排查步骤:

1. 确认超时范围 → 2. 查看日志 → 3. 检查网络 → 4. 检查资源 → 5. 分析代码

排查命令:

# 测试接口响应时间curl -w "@curl-format.txt" -o /dev/null -s https://api.example.com# 查看网络连接netstat -an | grep ESTABLISHED | wc -l# 查看系统负载topuptime# 查看应用日志tail -f /var/log/app.log | grep "timeout"# 查看数据库慢查询SHOW SLOW LOG;

常见原因:

网络问题

数据库慢查询

资源不足

代码性能问题

第三方服务超时

内存溢出如何排查?

答案:

排查步骤:# 1. 确认 OOMdmesg | grep -i "out of memory"# 2. 查看进程内存ps aux --sort=-%mem | head -10# 3. Java 应用分析jmap -heapjstat -gc1000# 4. 生成堆转储jmap -dump:format=b,file=heap.hprof# 5. 分析堆转储jhat heap.hprof# 或使用 MAT/Eclipse Memory Analyzer

常见原因:

内存泄漏

大对象分配

缓存未限制

并发问题CPU 飙高如何排查?答案:排查步骤:# 1. 查看 CPU 使用top# 2. 找到高 CPU 进程ps aux --sort=-%cpu | head -10# 3. 查看进程线程top -H -p# 4. Java 应用jstack> thread_dump.txt# 5. 分析线程 dump# 查找 RUNNABLE 状态的线程# 6. 查看系统调用strace -p

常见原因:

死循环

频繁 GC

复杂计算

锁竞争

磁盘空间不足如何排查?

答案:

排查步骤:

# 1. 查看磁盘使用

df -h

# 2. 查找大目录

du -sh /* | sort -hr | head -10

# 3. 查找大文件

find / -type f -size +100M -exec ls -lh {} \;

# 4. 查看日志文件

du -sh /var/log/*

# 5. 清理空间

rm -rf /tmp/*

journalctl --vacuum-time=1d

# 6. 查找已删除但未释放的文件

lsof | grep deleted‍

编程能力篇

Python 如何实现单例模式?

答案:

方法一:装饰器def singleton(cls):    instances = {}    def wrapper(*args, **kwargs):        if cls not in instances:            instances[cls] = cls(*args, **kwargs)        return instances[cls]    return wrapper@singletonclass Database:    pass方法二:元类class SingletonMeta(type):    _instances = {}    def __call__(cls, *args, **kwargs):        if cls not in cls._instances:            cls._instances[cls] = super().__call__(*args, **kwargs)        return cls._instances[cls]class Database(metaclass=SingletonMeta):    passPython 如何实现线程池?答案:from concurrent.futures import ThreadPoolExecutor# 创建线程池executor = ThreadPoolExecutor(max_workers=5)# 提交任务future = executor.submit(task_func, arg1, arg2)result = future.result()# 批量提交results = executor.map(task_func, [12345])# 关闭线程池executor.shutdown()Python 如何处理异常?答案:try:    result = 10 / 0except ZeroDivisionError as e:    print(f"除零错误:{e}")except Exception as e:    print(f"其他错误:{e}")else:    print("没有异常")finally:    print("总是执行")# 自定义异常class MyError(Exception):    passraise MyError("自定义错误")# 上下文管理器with open('file.txt''r'as f:    content = f.read()Python 如何实现装饰器?答案:# 简单装饰器def timer(func):    def wrapper(*args, **kwargs):        start = time.time()        result = func(*args, **kwargs)        end = time.time()        print(f"耗时:{end - start}")        return result    return wrapper@timerdef test():    time.sleep(1)# 带参数装饰器def retry(max_times=3):    def decorator(func):        def wrapper(*args, **kwargs):            for i in range(max_times):                try:                    return func(*args, **kwargs)                except Exception as e:                    if i == max_times - 1:                        raise        return wrapper    return decorator@retry(max_times=3)def unstable_func():    passPython 常见数据结构操作?答案:# 列表list1 = [123]list1.append(4)list1.extend([56])list1.insert(00)list1.remove(3)list1.pop()list1.sort()list1.reverse()# 字典dict1 = {'a'1'b'2}dict1['c'] = 3dict1.get('a'0)dict1.keys()dict1.values()dict1.items()# 集合set1 = {123}set1.add(4)set1.remove(1)set2 = {345}set1 & set2  # 交集set1 | set2  # 并集set1 - set2  # 差集# 元组tuple1 = (123)a, b, c = tuple1‍

软技能进阶篇

如何推动开发修复缺陷?

答案:

沟通策略:

清晰描述:提供详细的重现步骤、日志、截图

说明影响:解释对用户的影响程度

提供建议:给出可能的修复方案

跟踪跟进:定期跟进修复进度

升级处理:必要时寻求上级支持

沟通话术:

"这个缺陷会影响 XX%的用户,建议在发布前修复"

"我提供了重现视频和日志,方便定位问题"

"如果需要协助测试,我随时配合"

如何处理紧急上线?

答案:

应对流程:

1. 风险评估 → 2. 测试重点 → 3. 快速验证 → 4. 上线监控 → 5. 事后总结

测试策略:

优先测试核心功能

重点测试变更内容

执行冒烟测试

准备回滚方案

上线后密切监控

沟通要点:

说明测试风险

明确测试范围

记录决策过程

事后补充测试

如何评估测试工作量?

答案:

评估因素:

需求复杂度

功能点数量

接口数量

测试类型(功能/性能/安全)

自动化程度

环境准备时间

回归测试范围

估算方法:

测试工作量 = 用例设计时间 + 用例执行时间 + 缺陷验证时间 + 报告时间

用例执行时间 = 用例数量 × 单用例执行时间 × 执行轮次

经验值:

简单功能:0.5-1 天

中等功能:1-3 天

复杂功能:3-5 天

系统测试:1-2 周

如何管理测试风险?

答案:

风险管理流程:

风险识别 → 风险评估 → 风险应对 → 风险跟踪

常见风险及应对:

风险
影响
应对措施
时间不足
测试不充分
优先测试高风险模块
需求变更
用例失效
及时更新用例
环境不稳定
测试阻塞
准备备用环境
人员不足
进度延迟
申请资源/调整范围
技术难点
无法测试
寻求专家支持

如何提升测试团队效率?

答案:

提升方法:

建立测试规范和流程

推广自动化测试

建设测试平台和工具

知识分享和培训

复用测试资产

优化沟通协作

度量指标:

测试用例执行效率

缺陷发现率

自动化覆盖率

测试周期时间

缺陷逃逸率‍

职业发展篇

测试人员的职业发展路径?

答案:

                    ┌─────────────┐                    │  技术专家   │                    └──────┬──────┘                           │              ┌────────────┴────────────┐              │                         │       ┌──────▼──────┐           ┌──────▼──────┐       │  测试经理   │           │  质量架构师  │       └──────┬──────┘           └──────┬──────┘              │                         │       ┌──────▼──────┐           ┌──────▼──────┐       │  高级测试   │───────────│  高级测试   │       └──────┬──────┘           └──────┬──────┘              │                         │       ┌──────▼──────┐           ┌──────▼──────┐       │  中级测试   │───────────│  中级测试   │       └──────┬──────┘           └──────┬──────┘              │                         │       ┌──────▼──────┐           ┌──────▼──────┐       │  初级测试   │           │  初级测试   │       └─────────────┘           └─────────────┘            技术路线                    管理路线

测试人员需要掌握哪些技能?

答案:

技能矩阵:

级别
必备技能
进阶技能
初级
测试理论、用例设计、基础 SQL、Linux
自动化基础、接口测试
中级
自动化测试、接口测试、性能测试、CI/CD
安全测试、容器化
高级
架构理解、性能调优、技术方案、团队指导
质量体系、技术创新
专家
技术规划、行业影响力、创新实践
战略规划、组织建设

如何保持技术成长?

答案:

学习方法:

阅读技术书籍和博客

参加技术会议和培训

参与开源项目

写技术博客

实践新技术

与同行交流

学习资源:

极客时间、慕课网

GitHub 开源项目

技术社区(Stack Overflow、掘金)

官方文档

技术公众号

面试时如何展示项目经验?

答案:

STAR 法则:

Situation:项目背景

Task:你的任务

Action:你采取的行动

Result:取得的结果

示例:

S:公司电商平台日均订单 10 万,需要提升测试效率

T:负责搭建自动化测试框架

A:使用 Pytest+Selenium 搭建 UI 自动化,集成 Jenkins

R:回归测试时间从 3 天缩短到 4 小时,覆盖率提升至 80%

面试时如何提问?

答案:

推荐问题:

团队的组织结构和规模?

测试团队在公司的定位?

目前的技术栈和工具?

测试流程和规范?

团队的学习和成长机制?

对这个岗位的期望?

避免问题:

薪资福利(HR 面再问)

加班情况(换种方式问)

过于基础的问题

新技术趋势篇

测试大模型如何应用?

答案:

应用场景:

测试用例自动生成

测试脚本自动生成

缺陷报告自动生成

测试数据分析

智能问答辅助

使用示例:

提示词:请为登录功能生成测试用例,包括正常场景、异常场景、安全场景

输出:

1. 正常场景:正确用户名密码登录

2. 异常场景:用户名不存在、密码错误

3. 安全场景:SQL 注入、XSS、暴力破解

...

低代码测试平台如何使用?

答案:

平台特点:

可视化用例设计

拖拽式脚本编写

内置常用组件

一键执行测试

适用场景:

业务人员参与测试

快速搭建测试

标准化测试流程

代表产品:

测试家

云测平台

各厂商低代码平台

混沌工程如何测试?

答案:

测试内容:

服务故障注入

网络延迟注入

资源限制注入

依赖故障注入

工具:

Chaos Mesh

Chaos Monkey

Litmus

测试示例:# Chaos Mesh 示例apiVersion: chaos-mesh.org/v1alpha1kind: PodChaosmetadata:  name: pod-failurespec:  action: pod-failure  mode: one  duration: 30s  selector:    labelSelectors:      app: my-app

可观测性如何测试?

答案:

测试内容:

日志收集验证

指标采集验证

链路追踪验证

告警规则验证

工具栈:

日志:ELK、Loki

指标:Prometheus、Grafana

追踪:Jaeger、Zipkin

GitOps 如何测试?

答案:

测试内容:

Git 配置验证

自动化部署验证

回滚机制验证

配置漂移检测

工具:

ArgoCD

Flux

Jenkins X‍

综合实战篇

设计一个完整测试方案

答案:

测试方案模板:

1. 项目概述

2. 测试范围

3. 测试策略

4. 测试环境

5. 测试资源

6. 测试进度

7. 风险管理

8. 交付物

如何设计测试金字塔?

答案:

        ┌─────────────┐

        │  E2E 测试    │  10%

        ├─────────────┤

        │  接口测试    │  30%

        ├─────────────┤

        │  单元测试    │  60%

        └─────────────┘

如何建立质量度量体系?

答案:

度量指标:

缺陷密度

测试覆盖率

缺陷逃逸率

测试效率

发布质量

如何推动质量左移?

答案:

措施:

需求阶段参与评审

开发阶段代码审查

自动化测试前置

持续集成集成测试

如何建设测试平台?

答案:

平台功能:

用例管理

自动化执行

报告生成

缺陷管理

数据分析

快速问答汇总

问题
答案要点
什么是测试驱动开发?
先写测试再写代码
什么是行为驱动开发?
用自然语言描述测试
什么是探索性测试?
无脚本自由测试
什么是验收测试驱动开发?
业务人员定义验收标准
什么是持续测试?
CI/CD 中持续执行测试
什么是测试环境管理?
环境配置、隔离、复用
什么是测试数据管理?
数据准备、脱敏、清理
什么是测试资产管理?
用例、脚本、数据复用
什么是测试度量?
量化测试效果和质量
什么是测试优化?
持续改进测试流程和方法

💡 温馨提示:

理解原理比死记硬背更重要

结合项目经验回答更有说服力

保持学习,技术不断更新

面试是双向选择,保持自信

觉得有用?欢迎点赞、收藏、转发! 🙏

有任何问题?欢迎在评论区留言交流! 💬

本文原创,转载请注明出处

 每一次互动,皆是鼓励, 每一份支持,共促成长。

商务合作:RYXtest

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-03 13:27:56 HTTP/2.0 GET : https://f.67808.cn/a/458103.html
  2. 运行时间 : 0.198774s [ 吞吐率:5.03req/s ] 内存消耗:5,434.10kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=7b3a44b60e69ceabdfa26f72958f7078
  1. /yingpanguazai/ssd/ssd1/www/f.67808.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.67808.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.67808.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.67808.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.67808.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.67808.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.67808.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.67808.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.67808.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.67808.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.67808.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.67808.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.67808.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.67808.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.67808.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.67808.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.67808.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.67808.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.67808.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.67808.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.67808.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.67808.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.67808.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.67808.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.67808.cn/runtime/temp/8355a195ee092de3b7df0b40bf23abd7.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.67808.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000958s ] mysql:host=127.0.0.1;port=3306;dbname=f_67808;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001624s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.005330s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000682s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001430s ]
  6. SELECT * FROM `set` [ RunTime:0.000607s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001780s ]
  8. SELECT * FROM `article` WHERE `id` = 458103 LIMIT 1 [ RunTime:0.001599s ]
  9. UPDATE `article` SET `lasttime` = 1775194076 WHERE `id` = 458103 [ RunTime:0.040274s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.001186s ]
  11. SELECT * FROM `article` WHERE `id` < 458103 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.002245s ]
  12. SELECT * FROM `article` WHERE `id` > 458103 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.007043s ]
  13. SELECT * FROM `article` WHERE `id` < 458103 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002261s ]
  14. SELECT * FROM `article` WHERE `id` < 458103 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.018084s ]
  15. SELECT * FROM `article` WHERE `id` < 458103 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.035816s ]
0.200387s