软件测试工程师需要掌握的理论知识(2)

11、如何处理WEB自动化测试中的跨域问题的?
。设置浏览器选项:在自动化测试中,可以通过设置浏览器选项来禁用跨域策略。这可以通过使用WebDriver的接口或设置浏览器选项的方法来实现。例如,对于Chrome浏览器,可以使用-disable-web-security参数来禁用跨域策略。
。使用代理服务器:通过在自动化测试中使用代理服务器,可以绕过浏览器的跨域限制。代理服务器可以将请求发送到目标服务器,并将响应返回给浏览器,从而解决跨域问题。常用的代理服务器工具有Selenium Proxy、BrowserMob Proxy等。
。配置后端服务︰有时候跨域问题是由后端服务引起的。在自动化测试中,可以通过在后端服务中进行相关配置来解决跨域问题。例如,在服务器端设置响应头(Access-Control-Allow-Origin)来允许跨域请求。
。使用插件或扩展:对于特定的浏览器,可以使用插件或扩展来处理跨域问题。这些插件或扩展可以模拟用户行为,执行跨域请求,并将响应返回给自动化测试脚本。
。使用WebDriver的跨域解决方案:一些WebDriver库和框架提供了特定的方法或选项来处理跨域问题。例如,SeleniumWebDriver提供了--disable-web-security参数,可以在启动浏览器时禁用跨域策略。
 

12、支付是否涉及到密码?密码在数据库中应该如何存储?什么是加密算法?常见的加密算法有哪些?
支付过程中涉及到密码的情况是比较常见的,例如用户在进行支付时需要输入密码进行身份验证。密码在数据库中应该以加密的方式存储,而不是明文存储。这是为了保护用户的密码安全,防止密码泄露后被恶意使用。
加密算法是一种将原始数据转换为密文的数学算法,通过密钥来实现数据的保密性。常见的加密算法有以下几种:
。对称加密算法:使用相同的密钥进行加密和解密,常见的对称加密算法有DES、3DES、AES等。
。非对称加密算法:使用一对密钥,公钥用于加密,私钥用于解密,常见的非对称加密算法有RSA、DSA、ECC等。
。散列算法:也称为哈希算法,将任意长度的数据转换为固定长度的哈希值,常见的散列算法有MD5、SHA-1、SHA-256等。
。消息认证码(MAC算法)︰结合了对称加密和散列算法的特点,用于验证数据的完整性和真实性,常见的MAC算法有HMAC.
 

13、Http和Https之间的区别是什么?
HTTP (Hypertext Transfer Protocol)和HTTPS (Hypertext Transfer Protocol Secure)是用于在客户端和服务器之间传输数据的协议,它们之间的主要区别如下:
。安全性:HTTP是明文传输的协议,数据在传输过程中不加密,容易被攻击者窃取和篡改。而HTTPS通过使用SSL(SecureSockets Layer)或TLS (Transport Layer Security) 协议对数据进行加密和认证,确保数据的机密性和完整性,提供更高的安全性。
·端口号:HTTP使用的是80端口,而HTTPS使用的是443端口。服务器监听不同的端口号来区分接收HTTP请求还是HTTPS请求。
。证书:HTTPS需要使用数字证书来进行身份验证。数字证书由可信的第三方机构(如CA)签发,用于验证服务器的真实性。这样可以避免中间人攻击和伪造服务器的情况发生。
。连接建立过程:HTTP是无状态协议,每个请求和响应之间是独立的,没有记忆功能。而HTTPS在建立连接时需要进行握手过程,包括客户端和服务器之间的密钥交换、数字证书验证等步骤。
。性能:由于HTTPS需要进行加密和解密操作,因此在性能上比HTTP略慢一些。但是随着硬件和加密算法的改进,这种差距已经逐渐减小。
 

14、什么是DDoS攻击?如何防范DDOS攻击?
DDos(Distributed Denial of Service)攻击是一种恶意行为,旨在使目标网络、系统或服务无法正常运行。攻击者通过占用目标资源的方式,使其无法响应合法用户的请求,从而导致服务不可用。
防范DDoS攻击可以采取以下措施:
。流量过滤:使用防火墙、入侵防御系统(IDS)或入侵防御系统(IPS)等设备,对进入的流量进行过滤和检测,屏蔽恶意的流量。
。负载均衡:通过使用负载均衡设备,将流量均匀地分发到多个服务器上,避免单个服务器被攻击导致服务不可用。
。增加带宽和网络容量:通过扩大带宽和增加网络容量,可以更好地抵御大规模的DDoS攻击。
。CDN (Content Delivery Network):使用CDN服务,将网站内容分发到全球各地的边缘节点,能够缓解DDoS攻击对网站的影响,并提高用户的访问速度。
。限制连接和访问频率:通过设置连接、请求或访问频率的限制策略,可以有效防止大量的恶意请求对目标系统造成过载。
 

15、描述一下Jekins pipeline的搭建过程?
。安装Jenkins:首先需要在服务器上安装Jenkins。可以从Jenkins官网下载适合你操作系统的安装包,按照官方文档的指引进行安装。
。安装必要插件:安装完成后,进入Jenkins的插件管理页面,安装Pipeline插件以及其他必要的插件,如Git插件、Credentials插件等。
。创建Pipeline项目:在Jenkins首页,点击"新建任务"创建一个新的Pipeline项目。为项目命名,并选择"Pipeline"类型。
。编写Jenkinsfle:在Pipeline配置页面中,可以选择将Pipeline的定义放在Jenkinsfile中。Jenkinsfile是用来定义Pipeline的脚本文件,可以使用Groovy语言编写。在Jenkinsfile中,可以定义流水线的各个阶段、步骤、触发条件等。
。配置源码管理:在Pipeline配置页面的"配置"部分,可以选择要使用的源码管理工具,如Git。配置好代码仓库的URL、认证信息等。
。配置构建触发器:在Pipeline配置页面的"构建触发器"抓部分,可以设置Pipeline的触发条件,如定时触发、代码提交触发等。
。配置构建环境:在Pipeline配置页面的"构建环境"部分,可以配置构建时所需的环境变量、构建参数等。
。保存并触发Pipeline:完成Pipeline的配置后,点击"保存"按钮。然后可以手动触发Pipeline的执行,或者等待触发条件满足自动触发。
。查看Pipeline执行结果:可以在Jenkins的Pipeline详情页面中查看Pipeline的执行结果、日志输出等信息。根据需要进行调试和优化。
 

16、Jenkins的常用插件有哪些?(至少3个以上)
Git Plugin:用于与Git版本控制系统集成,支持代码的拉取、提交和分支管理等操作。
GitHub插件:用于与GitHub集成,支持GitHub上的代码仓库的Webhooks、PR构建等功能。Pipeline插件:引入了Jenkins Pipeline功能,允许使用Jenkinsfile来定义和管理流水线。
Email Extension Plugin:用于发送电子邮件通知,支持自定义邮件内容、收件人、附件等。
Checkstyle插件:用于检查和报告Java代码的编码规范和风格问题。
Cobertura插件:用于生成代码覆盖率报告,帮助评估测试覆盖率。JUnit插件:用于生成和展示测试结果报告,支持JUnit测试框架。Docker插件:用于与Docker集成,支持构建和部署Docker容器。
 

17、什么是SSL/TLS协议?
ssL (Secure Sockets Layer)和TLS (Transport Layer Security)协议是一种加密协议,用于在计算机网络上保护通信安全。SSL是早期版本的协议,而TLS是其后续的更新版本。
SSLTLs协议的主要目标是提供通信的机密性、完整性和身份验证。它通过在通信双方之间建立安全连接,使用加密算法对数据进行加密和解密,防止数据被窃取、篡改或伪造。
 

18、MQ有哪些常见的应用场景
消息队列(Message Queue,简称MQ)是一种消息通信模式,常见的MQ应用场景包括:
异步处理:将耗时的任务和请求放入消息队列中,由消费者异步处理,提高系统的处理能力和响应速度。
解耦系统:通过消息队列作为中间件,不同的系统之间可以通过发布和订阅消息进行解耦,降低系统之间的依赖性。
流量削峰:在高并发情况下,将请求放入消息队列中,通过控制消费者的数量和速度来平滑处理大量的请求,防止系统崩溃。
日志收集和分析:将系统日志、应用日志等实时发送到消息队列中,然后由消费者进行日志收集和分析,帮助监控系统状态和故障排查。
分布式事务:通过消息队列的事务机制,实现分布式事务的一致性,确保多个系统之间的数据更新操作的原子性。
消息通知和推送:通过消息队列发送通知和推送消息给用户,如短信通知、邮件通知、APP推送等。
应用解耦和异步通信:不同的模块和组件之间通过消息队列进行通信,实现解耦,提高系统的可维护性和扩展性。
 

19、介绍一下测试出来的bug?

1.记录BUG:测试人员需要详细记录BUG的信息,包括BUG的描述、出现的场景、复现步骤、相关截图和日志等。这些信息将有助于开发团队更好地理解问题的本质,从而快速定位和修复问题。
⒉分类和优先级排序:测试人员需要对BUG进行分类和优先级排序,以便开发团队能够根据BUG的重要性和紧急程度合理安排修复工作。常见的分类方式包括功能缺陷、性能问题、兼容性问题等,而优先级则可以根据BUG的影响范围和严重程度来划分。
3.提交BUG:测试人员需要将记录好的BUG提交给开发团队,可以通过缺陷管理工具进行提交,并指明相应的开发人员或负责人。同时,测试人员需要与开发团队保持沟通,确保问题得到及时修复。
4.验证BUG:在开发团队修复BUG后,测试人员需要进行复测,确保问题已经得到解决并且没有引入新的问题。如果BUG已经修复,测试人员需要在测试报告中记录修复情况,以便后续跟踪和审计。
5.跟踪和总结:测试人员需要跟踪BUG的修复情况,确保所有提交的BUG都得到了及时修复。同时,测试人员需要定期对测试工作进行总结,分析BUG产生的原因和解决方案,以便提高测试质量和效率。
 

20、JMeter用于模拟用户并发访问如何去做?
。下载和安装JMeter:从JMeter官方网站(https:ljimeter.apache.org/))下载JMeter,并按照指南进行安装。
。创建测试计划:打开JMeter,创建一个新的测试计划,右键点击测试计划,选择"Ad ~> Threads(Users)-> Thread Group"来添加线程组。
。配置线程组属性:在线程组的属性中,设置线程数(模拟的并发用户数)、循环次数(每个用户执行的请求次数)和延迟时间等。
。添加HTTP请求:在线程组下添加HTTP Sampler (HTTP请求),设置请求URL、方法(GETIPOST等)和参数等信息。
。添加监听器:为了查看测试结果,可以添加监听器,如"View Results Tree"、"Aggregate Report等,用于查看请求响应、错误信息、吞吐量等。
。配置其他元件:根据需要,可以添加其他元件,如断言(Assertions)、定时器(Timers)、配置元件(Config Elements)等,来模拟真实的用户行为。
。运行测试计划:保存测试计划后,点击"运行"按钮来执行测试,JMeter将模拟并发用户访问目标网站,并记录相应的测试结果。
。分析测试结果:测试完成后,可以通过监听器、报告和图表等工具来分析测试结果,评估系统的性能和稳定性。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件测试工程师需要掌握的基础知识包括以下几个方面: 1. 计算机基础知识:了解计算机的组成部分、操作系统的分类以及常见的系统架构,如B/S和C/S。还需要熟悉常用的DOS命令。 2. 软件测试基础理论知识:了解软件测试的目的、定义、原则,以及产品质量模型和软件测试的基本流程。 3. Linux命令:掌握常用的Linux命令,因为在软件测试中可能需要搭建测试环境或在服务器上部署自动化项目,而服务器通常使用Linux系统。 4. SQL语句:熟悉数据库的基本操作,包括增、删、改、查的SQL语句。在软件测试中,常常需要操作数据库进行测试结果的校验或测试数据的准备。 5. 手工测试用例的编写:作为软件测试工程师,编写高覆盖率、低重复率的测试用例是最基本的要求。需要不断追求编写高质量测试用例的能力。 6. 缺陷的管理:了解如何管理测试人员提出的缺陷,以确保项目中的缺陷能够及时被修复。 综上所述,软件测试工程师需要掌握编程语言、数据库、测试理论、测试工具、操作系统等方面的基础知识。这些知识将有助于他们在软件测试过程中更好地进行工作。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [软件测试工程师要学习的基础知识,你知道多少?](https://blog.csdn.net/weixin_67553250/article/details/125262429)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [学习软件测试需要掌握哪些知识点呢(看这篇就行了)](https://blog.csdn.net/m0_57290404/article/details/120354535)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [如何写软件测试的归档报告?](https://blog.csdn.net/weixin_51689029/article/details/124024137)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值