当前位置:网站首页>软件测试面试(四)
软件测试面试(四)
2022-08-03 12:45:00 【车厘子子】
一、在自动化测试过程中,选择的是哪一种数据驱动形式?
数据驱动,通过文件存放数据管理的形式,在执行自动化时,直接导入文件中的数据,来实现整个自动化测试业务。提升代码的可维护性,代码与数据分离,更好地对自动化测试执行以及测试数据进行管理和维护。
常用的数据驱动形式包括:
Excel数据驱动:实现简单,容易上手。但是数据较为死板,管理相对麻烦
yaml数据驱动:数据直观,可灵活优化,方便管理。但实现对于技术要求更高。
其他数据驱动:TXT、CSV、XML等。
二、可以说下什么是关键字驱动吗?
关键字驱动,是自动化测试框架设计模式中最为核心与底层的设计模式,适用于UI自动化和接口自动化中。
本质意义上其实就是面向对象编程思维里的对象与封装,这种设计模式就是将代码基于业务使用场景进行合理的独立封装,再通过调用封装好的函数来实现业务执行。
一般而言,封装时都会考虑代码的复用性,封装的灵活度等问题。
封装上也会基于实际需要进行变化,从常态化的操作行为的封装,到业务流程的封装,到固定步骤与数据的封装等,封装形式是多样化的。
适用于各类型的项目自动化,是适配性最强的一种设计模式。
三、什么是PO?
PO模型是自动化测试框架设计中专用于UI自动化的一种设计模型。
在PO中,关注的核心是页面,而不是操作行为。
基于页面,将复杂的业务流程进行切片,把完整的业务流程切割成一个又一个的独立页面,最终再将页面以业务所需的顺序进行组装,最终实现业务流程的运行。
极大提升了代码的维护性,所有的内容基于页面来进行管理,每一个页面的单独维护都可以对测试用例的执行进行同步维护,降低维护成本。
更好地满足单一系统的自动化测试覆盖。
四、如何提高selenium脚本的自动化执行效率?
1、优化测试用例,尽可能不使用强制等待。
2、减少不必要的操作步骤,与业务流程无关的操作步骤或者可简化的操作步骤,例如经过三到四步才能访问到要测试的页面,可以直接通过访问URL来操作,简化操作步骤。
3、设置合理的页面加载策略,如果页面加载内容过多,可检查具体加载内容是哪些,基于实际情况,在不影响测试的前提下,配置不同的加载策略,提升执行过程中的运行速度。
4、合理设计与封装测试框架结构,简化人为介入的操作过程,降低自动化测试代码的维护难度。
五、如何提高自动化执行的稳定性?
1、合理化使用各类等待,确保元素在页面正常显示。
2、做好异常处理机制,即try...except
3、多用例并发时,减少各用例之间的耦合度,避免在多线程运行过程中因为执行顺序的不可控导致异常。
4、独立化测试环境,避免环境干扰及数据干扰。
5、检查元素定位正确性,尽量避免元素定位失败导致的测试终止。
六、如何设计高质量自动化脚本?
1、独立化测试场景,将不同业务流程下的测试执行进行独立化管理,避免将所有代码封装在一个函数中,或保存在一个类中,降低代码冗余,提升代码的维护性。
2、应用合理的设计模式,结合企业业务需求、团队技术能力、自动化执行目的、被测试项目情况进行合理化的测试框架结构设计,确保实现的自动化测试框架可以满足到企业的预期要求,并能够顺利在团队中进行推行。
3、降低不同场景下的测试用例耦合度,独立化不同的测试用例。
4、使用分层结构设计,确保在实际运行过程中,测试数据、测试代码、逻辑代码的完整分离。
5、对于业务流程,核心是从业务的正向流程去分析与设计用例,不要企图把所有的操作行为都基于代码来实现。
6、各个函数的封装上,都要考虑到更加灵活的方式来实现,避免因为逻辑写死而导致的函数功能单一,无法满足尽可能多的需求。
七、一个完整的请求过程是什么样的?
在不强调网络协议的情况下,请求基本都是HTTP网络协议下的请求。
域名解析--服务器建立连接--发送请求--服务器接收并运算,生成响应--返回响应结果--前段解析,加载资源--渲染到页面展示
八、HTTP中长连接与短连接的区别?
短连接是指客户端与服务端每进行一次请求操作,就建立一次TCP连接,收到服务器响应后,就断开连接。
长连接是指客户端和服务建立TCP连接后,它们之间的连接会持续存在,不会因为一次HTTP请求后关闭,后续的请求也是用这个连接进行通信,使用长连接的HTTP协议,会在响应头有加入:Connection:keep-alive。长连接可以省去每次TCP建立和关闭的握手和挥手操作,节约时间提高效率。但在长连接下,客户端一般不会主动关闭连接,如果客户端和服务端之间的连接一直不关闭的话,随着连接数越来越多,会对服务端造成压力。
所以长连接多用于频繁请求资源,而且连接数不能太多的情况,例如数据库的连接用长连接。而像Web网站这种并发量大,但是每个用户无需频繁操作的场景,一般都使用短连接,因为长连接对服务端来说会耗费一定的资源。
九、如何设计接口自动化测试用例?
1、单接口用例设计(边界值、等价类等)
2、接口关联业务用例设计(yaml+unittest)
十、接口测试中Get与Post的区别?
边栏推荐
- An工具介绍之3D工具
- Image fusion GAN-FM study notes
- 从器件物理级提升到电路级
- Station B responded that "HR said that core users are all Loser": the interviewer was persuaded to quit at the end of last year and will learn lessons to strengthen management
- An工具介绍之钢笔工具、铅笔工具与画笔工具
- 利用ChangeStream实现Amazon DocumentDB表级别容灾复制
- 实数取整写入文件(C语言文件篇)
- 类和对象(中上)
- 安防监控必备的基础知识「建议收藏」
- YOLOv5 training data prompts No labels found, with_suffix is used, WARNING: Ignoring corrupted image and/or label appears during yolov5 training
猜你喜欢
YOLOv5训练数据提示No labels found、with_suffix使用、yolov5训练时出现WARNING: Ignoring corrupted image and/or label
shell编程条件语句
特征降维学习笔记(pca和lda)(1)
Sogou news - dataset
图像融合DDcGAN学习笔记
nacos app
一次内存泄露排查小结
How to build an overseas purchasing system/purchasing website - source code analysis
Station B responded that "HR said that core users are all Loser": the interviewer was persuaded to quit at the end of last year and will learn lessons to strengthen management
海外代购系统/代购网站怎么搭建——源码解析
随机推荐
长江商业银行面试
Using the Work Queue Manager (4)
特征降维学习笔记(pca和lda)(1)
R语言ggplot2可视化:使用ggpubr包的ggline函数可视化折线图、设置add参数为mean_se和dotplot可视化不同水平均值的折线图并为折线图添加误差线(se标准误差)和点阵图
R语言ggplot2可视化:使用patchwork包的plot_layout函数将多个可视化图像组合起来,ncol参数指定行的个数、byrow参数指定按照行顺序排布图
SQL分页查询_Sql根据某个字段分页
【Verilog】HDLBits题解——Circuits/Sequential Logic/Latches and Flip-Flops
利用ChangeStream实现Amazon DocumentDB表级别容灾复制
How can I get a city's year-round weather data for free?Precipitation, temperature, humidity, solar radiation, etc.
基于php网上零食商店管理系统获取(php毕业设计)
2022 年 CISO 最关心的是什么?
php microtime encapsulates the tool class, calculates the running time of the interface (breakpoint)
nacos app
AMS simulation
Notepad++ 安装jsonview插件
从零开始C语言精讲篇5:指针
期货开户中常见问题汇总
【精品必知】Pod生命周期
浅谈程序员的职业操守
期货公司开户关注的关键点