自动化测试面试问答(一)

1、请描述一下自动化测试流程?

1)需求分析:明确自动化测试范围和目标

2)工具选型:选择框架(Pytest/Unittest)、工具(Selenium/Requests)

3)环境搭建:配置测试环境、依赖库

4)用例设计:编写可自动化的测试用例

5)脚本开发:用PO模式编写可维护脚本

6)测试执行:CI集成(Jenkins/GitLab CI)

7)结果分析:日志/报告(Allure)定位问题

8)维护更新:随需求迭代更新脚本

2、你是如何做接口自动化测试的?

# 示例:使用Requests+Pytest
import requests
import pytest

def test_login():
    url = "https://api.example.com/login"
    data = {"user": "admin", "pass": "123456"}
    res = requests.post(url, json=data)
    assert res.status_code == 200
    assert res.json()["token"] is not None

3、简单介绍一下Requets库?

Python HTTP库:

  • 发送HTTP请求(GET/POST/PUT/DELETE)
  • 处理响应数据(JSON/XML/text)
  • 会话管理(Session维持Cookie)
  • 超时设置/SSL验证安装:pip install requests

    4、具体说一说Unittest测试框架?

    import unittest
    
    class TestMath(unittest.TestCase):
        def setUp(self):  # 前置操作
            self.calc = Calculator()
        
        def test_add(self):  # 测试方法需以test_开头
            self.assertEqual(self.calc.add(2,3), 5)
        
        def tearDown(self):  # 清理资源
            del self.calc
    
    if __name__ == "__main__":
        unittest.main()
    

    5、具体说一说Pytest测试框架?

    1)无需继承类:函数即用例

    2)Fixture机制:灵活管理测试资源

    3)参数化:@pytest.mark.parametrize简化数据驱动

    4)插件丰富:Allure报告、并发执行(pytest-xdist)

    5)断言直观:直接使用‘assert’

    6、Unittest 与 Pytest 测试框架的区别?

    Unittest vs Pytest

    用例写法

    需继承TestCase

    普通函数

    前置后置

    setUp/tearDown

    Fixture装饰器

    参数化

    需用subprocess

    内置parametrize

    报告

    HTMLTestRunner

    Allure(更美观)

    社区生态

    官方库,功能稳定

    插件丰富,扩展性强

    7、接口自动化如何做接口关联测试?

    1)Token传递:登录接口获取token → 存入全局变量 → 后续请求携带

    2)数据传递:创建订单返回order_id → 作为参数传给查询接口

    3)实现方式:Pytest的fixture共享数据,封装全局的Session对象管理状态

    8、做Web自动化如何处理验证码?

    方法一:万能验证码,让测试环境固定验证码

    方法二:屏蔽验证码,让开发临时关闭验证功能

    方法三:OCR识别,使用Tesseract库识别图片提取验证码

    方法四:借助第三方平台,付费API(打码平台)

    方法五:Cookie绕过,手动登录后服用Cookie

    9、抓取不到元素可能是什么原因?

    原因一:定位问题,findelement的路径有问题

    原因二:时机问题,没有在等待的时间内等到元素(未等待元素加载)

    原因三:结构问题,元素在shadow dom内,或者页面元素包含在iframe内未切换

    原因四:状态问题,元素被遮挡,页面未完全渲染(Ajax加载)

    10、具体聊一聊自动化测试的作用?

    1)提升效率:回归测试速度提升10倍+ 2)保证质量:高频执行避免人为遗漏 3) 降低成本:减少重复人力投入 4)持续反馈:CI/CD快速发现缺陷 5) 覆盖困难场景:压力测试/兼容性测试

    不适合UI频繁变更的功能,需平衡自动化投入与收益

    11、自动化测试调试思路

    调试一些思路:

    第一步:看log,看看哪里出错了,

    第二步:看截图,看视频,找到是哪里出错

    第三步:手工重复步骤,看看用手工操作是否会在相同的地方出错

    第四步:检查xpath的路径,在当前页面是否可以正常找到

    第五步:用js的高亮元素代码,看看程序是否可以正确找到

    第六步:换一种xpath的写法,或者点击原来元素的父元素,或者子元素

    第七步:添加等待时间,是否元素没有出现就去操作了,出错后,是需要进行调试的

    #测试面经##测试##测试秋招#
    测试岗面经 文章被收录于专栏

    整理面试过程中的测试问答,常看常新,多多学习!有些问题是从其他人那里转载而来,会在文章下面注明出处,希望大家多多支持~~

    全部评论

    相关推荐

    酷酷我灵儿帅:这去不去和线不线下面说实话没啥关系
    点赞 评论 收藏
    分享
    小浪_Coding:简历有内容,换个模版,简历技能模版都需要大改,有机会找的
    点赞 评论 收藏
    分享
    不愿透露姓名的神秘牛友
    昨天 12:02
    ssob上原来真有BOSS啊
    硫蛋蛋:这种也是打工的,只不是是给写字楼房东打工
    点赞 评论 收藏
    分享
    评论
    2
    21
    分享

    创作者周榜

    更多
    牛客网
    牛客网在线编程
    牛客网题解
    牛客企业服务