前言
年前公司大量裁员,很荣幸拿到了过年大礼包,休息了一个月,年前年后找了一段时间,经历过,手撕代码,上机编写代码,各种各样的笔试题,这里给大家总结一些面试过程的面试题。面试过管理岗位和技术岗位,就只介绍一些技术岗位的面试题吧,过程中编写一些个人理解的结果,大佬勿喷
1、python装饰器是什么?有什么作用?简单举一个例子?
答:python装饰器就是在不改变原函数的情况下项函数增加新的功能,主要对目标函数进行装饰,增加函数的功能。比如日志记录,在某个函数中,增加一些日志记录,方便我们后续调试或者完成一些日志记录。
2、pytest的装饰器有哪些?你用到过那些?
pytest.mark.skip 跳过某个用例
pytest.mark.xfail 预计失败的用例
pytest.mark.parametrize 参数化
pytest.fixture 装饰器
3、自动化过程的测试数据如何存放的?
答:通过yaml文件、excel表格进行存放,编写一个读取对应文件的函数,然后需要的时候调取函数进行读取。
4、python中的魔法函数是什么?举例子说明?
答:python中的魔法函数主要根据一些特殊命名约定的内置方法,以双下划线开头和结尾,函数在特点的上下文会被python进行自动调用。
__init__() 构造函数,在创建类的新实例时调用 __str__() 返回一个代码对象的字符串 __len__() 返回对象的长度
5、python切割有哪几种方法?
答:直接通过字符串切割,类似[6:],内置函数split()进行切割
6、python中多进程和多线程?
答:多进程:Multiprocessing,通过for循环的形式进行创建进程
多线程:Threading,通过for循环的形式进行创建线程
7、conftest.py文件是做什么用的?
答:confitest.py属于pytest测试框架中的一个配置文件,主要作用于定于fixture,直接可以进行调用,无需重新导入,放在特点的目录下。
8、token是什么,一般存放在哪里?
答:token属于一个经过加密的安全凭证,一般存放在浏览器的请求头部中,也有部分会存放在用户浏览器的本地缓存中。
9、cookies和session的区别是什么?
答:cookies和session都是会话技术,其中cookies是保存在客户端,session是存储在服务器端。
10、DDT是什么?
答:unittest中的数据驱动测试工具包,多数用于参数化中使用。
11、自动化测试都是用于什么场景中?
答:目前自动化测试都是使用在回归测试中和持续集成中,通过研发上传代码后会自动打包对应的软件,然后自动调取自动化测试用例,然后进行执行自动化测试用例。
12、隐式等待和显示等待区别?如何使用?
答:隐式等待和显示等待主要用于UI自动化中,隐式等待适用于页面加载相对慢且不确定哪些元素加载时间较长的情况,它可以减少因元素未加载而导致的错误。
显示等待可以设置检测元素的时间,比如0.5S检测一次,检测到后,立即执行下面的操作。
13、Docker是什么?公司内使用什么场景?
答:Docker是一个开源的应用容器引擎,提供了一种标准化的方式将应用程序及其依赖环境打包成一个可移植的容器。这意味着开发者可以构建一个包含应用程序代码、运行时、库以及其他必要组件的容器镜像,确保应用能够在任何安装了Docker环境的地方,以一致的方式进行运行。
公司目前使用主要保证了研发和测试同事之间的环境统一,保证环境统一,不会出现环境不同引发的问题。
14、常用的容器的命令?
docker run 启动容器 docker ps 查看运行的容器 docker stop 停止容器 docker rm 删除一个容器
15、常用的镜像命令?
docker pull 拉取镜像 docker save 保存镜像 docker rmi 删除镜像 docker images 查看本地镜像
16、git的常用命令?
git commit 提交更新文件 git branch 显示本地分支 git checkout 切换分支 git pull 下载代码 git push 上传代码 git merge 合并分支 git reset --hard HEAD 版本回退
17、有没有使用过pytest的钩子函数?
答:简单使用过钩子函数,主要用来获取测试结果,添加到测试报告中,简单的使用过,具体开发完成某些功能,这些目前工作中没有遇到过。
18、常用的自动化框架有哪些?
答:接口自动化:python+requests+pytest+alluer
WEB自动化:python+selenium+pytest+allure
app自动化:python+allure+pytest+allure
19、接口自动化中如何保持登录状态?
答:通过session函数进行保持,可以在session的状态进行保持登录的状态,进行完成其他操作
20、自动化测试框架通过什么模型进行搭建的?
答:通过PO模型进行搭建的,PO模型主要分为了几部分,其中将测试数据放在一次,公用的测试方法放在一起,测试用例放在一起,封装一些常用的方法放在一起。
21、项目中没有产品经理,没有需求文档,你应该如何编写测试用例?
答:两种情况,第一种,软件还处于开发阶段且没有需求文档,这时候就需要像研发请教整个项目的内容和本次开发的内容,根据研发所介绍的内容进行编写测试用例;第二种,软件已经开发完成了,这个时候可以根据实体软件进行编写测试用例,边测试边写测试用例。无论是那两种方法,都要将后续用例编写完成后,进行组内或者部门进行评审。
22、如果入职新公司了,如何快速熟悉产品,从而实现快速上手?
答:进入公司后,首先根据我们的现有软件进行上手操作熟悉,并在过程中进行结合需求文档进行软件操作。此项熟悉后,进行查看过往提交的bug缺陷内容,结合前面熟悉程度,更加清楚后续测试过程中,哪些地方比较容易出现问题。个人能力觉得可以的话,可以进行查看研发的代码或者在此过程中,研发评审代码的过程中,进行参与其中,可以从底层方面更加了解本次产品需改了哪些内容。
23、项目中的自动化如何开展的?如何进行的?根据自动化的执行过程是怎么安排的?
答:当项目稳当后,进行编写自动化测试,编写自动化用例的前提是保证本次迭代过程中的手工测试通过后,然后进行编写测试用例,将测试用例以优先级的形式进行划分,先把主流程的过程进行实现自动化测试。自动化的执行过程就是利用空闲的时间,如果下班后,或者每天早上固定时间进行执行自动化测试用例,并自己将结果通过和钉钉/企业微信进行连接起来,保证每次执行结果都可以通过群聊或者报告方式展示给大家查看。后期可以通过jenkins进行搭建持续集成,通过研发每次提交代码,都可以运行我们的自动化测试代码,并将测试结果以邮件或者群聊方式通知给到项目人员中。
24、在项目中你通过python除了编写自动化测试?还做过什么?
答:编写项目中的测试工具,举例说明,比如小编个人写的,通过用例管理平台中,进行拉取本次测试相关的测试用例,然后生成EXCEL或者word文档,执行完成后,直接导出报告。
再比如完成一些不可重现的bug,举例:比如一个缺陷不好复现,可以通过自动化的形式进行将这个过程完成自动化,并在代码中抓取相关错误内容。从而减少人员手工操作。
25、项目迭代周期是多久?每个周期测试都做些什么?
答:这里就是考虑我们的一个项目流程,评审需求,编写用例,评审用例,需求测试,提交缺陷,整理用例,编写报告。
26、印象深刻的bug?
答:这个相信每一个面试人员,都会提前准备的,不做太多介绍。如果没有准备,做过这么久测试,随便提出来一个缺陷。
27、如果保证软件测试环境和研发的环境保证统一的?
答:这里通过Docker容器技术的方法,通过Docker确保了研发,测试的环境统一性。在这个过程中,自助学习了Docker技术,并将学习的内容运用到工作中,将研发和测试的环境保持了统一性。
28、每次研发提测延后,导致测试加班,这个时候应该怎么做?
答:因为研发提测延后,导致加班,这个前面可以接受,进行默默无闻的进行加班,等到下一个迭代时,进行和对应人员沟通,周期延长;测试人员更早的介入测试,比如通过mock测试对后端接口进行测试
29、你作为组长/测试经理,您应该如何分配任何?
答:首先对组人人员进行一定了解,明白每个人的相关经验,可以根据对应的经验进行分配对应的任务,然后也会对其进行轮岗机制,所谓轮岗机制就是保证每一位组内人员对项目各个模块都进行熟悉,并且人员不足时,可以根据项目优先级进行分配组员,从而达到不影响项目进度。
30、工作了这么多年了,你能介绍下每一家公司中,你提升了哪些技术?
答:第一家,学习了如何测试,熟悉了测试流程,项目流程,缺陷提交,数据库,如何编写测试用例,了解自动化测试用例代码;第二家,学习了python,学习自动化框架,并将自动化技术运用到工作中;第三家,学习了更深层面的技术,比如优化了框架内容,通过脚本提高了测试效率,搭建持续集成,学习docker等操作,这个具体看个人发挥
总结
简单的写了一些关于面试过程中的问题,当然还有一些关于linux目录啊,接口相关问题啊,小编这里就不具体的列出来了,经过这么长时间的面试,总结下来就是,测试人员不能只会像以前一样只需要点点点了,基本上每个公司,别管用不用的到自动化测试,前提你要知道和了解,这就是经常听到的一句话,面试造飞机,进去拧螺丝。好了,感谢您的阅读,希望本篇文章可以帮助到您。
作者:测试安静