测试mianshi问题

本文介绍了pytest自动化测试框架的特性,包括前置后置处理、用例执行顺序控制、失败重试、数据参数化等。同时,讨论了UI自动化中的设计考虑、常见问题及解决方案,并提及了git冲突解决、测试报告生成、接口自动化框架构建以及如何管理测试用例。此外,还涵盖了Linux命令、错误状态码、压测场景构造和功能测试负向场景等测试基础知识。

自动化

一、pytest都有哪些特性

1、前置和后置处理

  • setup,在测试函数或类之前执行,完成准备工作,例如数据库链接、测试数据、打开文件等
  • teardown,在测试函数或类之后执行,完成收尾工作,例如断开数据库链接、回收内存资源等
  • 也可以通过在fixture函数中通过yield实现setup和teardown功能

2、可以控制用例执行顺序

参考pytest控制用例执行顺序_51CTO博客_pytest用例执行顺序

  • 安装pytest_ordering,通过装饰器@pytest.mark.run(order=1)来进行控制,数字越小,越前执行
  • 安装pytest-dependency 在对应的方法A上添加@pytest.mark.dependency()对所依赖的方法进行标记设置为被依赖方法,在依赖方法使用@pytest.mark.dependency(depends=["被依赖方法名"])引用依赖 可添加name=参数  官网说明地址   https://pytest-dependency.readthedocs.io/en/latest/usage.html#basic-usage
  • @pytest.fixture装饰,包括session、module、class、function
  • @pytest.mark.skip()  可以装饰方法与类,用于跳过该用例

3、可以进行失败重试:pytest-rerunfailures,

4、可以做到数据参数化:@pytest.mark.parametrize实现参数化

5、能够做到数据驱动:@pytest.mark.parametrize("test_info", data) 

6、分布式测试:pytest-xdist(多CPU分发)

7、能够生成html测试报告:pytest-html,生成测试报告(--html=report.html)

8、集成CI:pytest可以非常方便与CI工具集成,如Jenkins。

二、Selenium自动化测试面试题

1、什么是自动化测试、自动化测试的优势是什么?

通过工具或脚本代替手工测试执行过程的测试都叫自动化测试。

自动化测试的优势:

1、减少回归测试成本

2、减少兼容性测试成本

3、提高测试反馈速度

4、提高测试覆盖率

5、让测试工程师做更有意义的测试

2、什么样的项目比较适合做自动化测试,什么样的不适合做自动化测试?

适合做的项目:

a.项目周期长且相对稳定

b.需要做频繁的冒烟测试

c.需要经常做回归测试

d.需要进行大数据量的数据驱动测试

不适合做的项目:

a.项目周期短用例不会多次重复执行

b.被测项目不稳定变化太频繁

3、说一下开展自动化工作的主要流程是怎样的?

1、选择合适的测试工具

2、定义自动化测试覆盖的范围

3、制定测试计划

4、自动化测试环境搭建

5、脚本开发

6、测试执行

7、测试脚本维护

4、在制定自动化测试计划的时候一般要考虑哪些点?

1、选择适合的测试工具或分析当前的工具是否适合新项目

2、选择合适的自动化测试框架

3、确定要做自动化测试的范围和不做自动化测试的范围

4、测试环境的准备与搭建

5、制定一个粗略的脚本开发的时间表

6、制定脚本执行的一些策略,如冒烟测试的频率,回归测试的时间点及频率等

7、定义自动化测试的输出,比如脚本,测试数据,发现的缺陷,测试报告等

5、编写自动化脚本时的一些规范?

1、统一的命名约定,如用例名,方法名等

2、良好的脚本注释

3、遵循代码规范,使用适当的缩进

4、对异常进行处理

6、你一般一天能编写多少个自动化脚本?

这个取决于测试用例场景的复杂度,一般一天能写2~5个左右,复杂的话一天只能写一个

yaml

UI自动化写的过程,推广过程

假如让你设计一个接口自动化框架从哪些方面考虑

在ui自动化的过程中遇到过什么问题

git怎么解决代码上传的冲突

https://www.toutiao.com/i7000540663540400672/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1630403191&app=news_article&utm_source=mobile_qq&utm_medium=toutiao_android&use_new_style=1&req_id=2021083117463001021207421850010A32&share_token=d0ab85f9-40c7-4454-b673-09137a0275e8&group_id=7000540663540400672

最近的版本做了啥

如何解决数据测试用例变动问题

定位方式里面哪个最好为什么

怎么优化框架

webdriver为什么能驱动浏览器

UI自动化,页面有一个弹窗,没弹出的时候如何判断结果是失败的

显式等待和隐式等待的区别

如何管理用例的

数据库

查询每个学生的总成绩

select 学生名, sum(语,数,英)
from 学生表
group by 学生名

逻辑思维

一天24小时时针和分针重复多少次

时针分针一天到底重合多少次?-CSDN博客

python

手写代码判断一串字符串是不是ip地址

测试基础类

还有接口,性能,功能

还有就是post和get的区别

还有就是post参数数据格式有哪些

再有就是给一个开始时间下拉框,结束时间下拉框,一个搜索按钮,搜索数据的页面,分析测试点

错误状态码

如何构造压测场景、压测流程

功能测试的负向场景

Linux命令

Linux查看进程接口、查看日志

接口类

如和判断是前端问题还是后端问题

抓包分析

  • 如果页面请求的接口少了就是前端的问题
  • 或者传的参数和接口文档里面定义的不一样也是前端的问题  
  • 如果接口返回的信息和接口文档定义的不同就是后端的问题

比如一个商品列表 筛选了 下架、时间、商品名称,然后前端没有传下架这个参数 那就是前端的问题要是前端传递的参数都正确了 列表的数据不对 那就是后端的问题 

面试类型

 

总结

可以提供一些常见的软件测试面试问题和对应的答案,准备面试的人可以参考: 1. 你认为软件测试的作用是什么? 答:软件测试主要是为了确保软件质量,检查软件的正确性和完整性,并保证软件符合客户或用户的需求和期望。 2. 你在测试中有用过哪些测试方法? 答:我通常会使用黑盒测试、白盒测试、灰盒测试、自动化测试、性能测试和安全测试等多种测试方法。 3. 你如何识别和报告软件缺陷? 答:我通常会记录、跟踪和报告软件缺陷,包括缺陷的严重程度、发现时间、原因、影响范围等信息,并尽可能提供详细的重现步骤和截图。 4. 你曾经遇到过最棘手的问题是什么?如何解决的? 答:我曾经遇到过一个比较难解决的问题,是由于系统环境变化导致的测试结果不一致。我通过逐个排除可能的因素,最终找到了问题的根源,并提供了针对性的解决方法。 5. 你如何与开发人员或其他团队成员合作? 答:我通常会与开发人员保持良好的沟通和合作,在测试之前和测试期间,我也会与其他团队成员进行协作和交流,确保测试工作顺利进行。 6. 你了解什么是自动化测试吗?你能使用哪些工具来进行自动化测试? 答:自动化测试是利用软件工具来执行测试脚本和比较预期结果与实际结果的过程。我熟练掌握Selenium、Appium等自动化测试工具,也了解其他测试工具的使用方法。 7. 你如何评估测试的质量和效果? 答:我会根据测试的目标和计划,综合考虑测试覆盖率、缺陷数量、缺陷修复率、测试周期、测试效率、测试成本等因素,来评估测试的质量和效果。 希望以上答案可以帮助您准备好软件测试面试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值