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

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的写法,或者点击原来元素的父元素,或者子元素

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

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

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

    全部评论

    相关推荐

    07-07 13:20
    已编辑
    门头沟学院 测试工程师
    转眼入职新公司一周啦有时候不敢相信命运就在一瞬间就会改变我放弃了原先想去的南方城市来到了山东的海边目前的工作让我感受到前所未有的轻松公司里几乎都是女生….都是年轻人….没有谈资论辈…没有严格的上下级关系….还有同事们都很热情…从公司走五分钟就能看到海….从出租房走五分钟到公司…也许是这半年我把坏运气都用光了这一切都意外的顺利短短几天就让我确定了 我想一直在这个公司呆下去的想法没有打压和pua 没有试用期裁员 没有优化 没有复杂的人情关系 一切都好像梦一样还有人问我是不是进外企了 哈哈哈总之 命运的齿轮开启的让我应接不暇原来自己想要的生活只需要月薪4k就能实现我想要的不过就是出门能看到海、有一个自己的温暖的小屋、有份舒心的工作,周末和朋友见一面,天天吃不同的好吃的外卖。更重要的是 身心的舒服和自由 完完全全掌握自己的生活…这就够了也许有时候会看到有人觉得我放弃了计算机这行 我会后悔 替我不值。但我想说 人生是自己的 知道自己现在过的不错 那就够了。我们的社会文化总是告诉我们要着眼于未来 但却完了眼前可获得的快乐 希望大家都能冲破思想的桎梏。找到属于自己的价值观。加油👏
    上班到公司第一件事做什么...
    点赞 评论 收藏
    分享
    评论
    2
    21
    分享

    创作者周榜

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