news 2026/2/12 14:20:36

测试经验分享,Web自动化测试+性能测试面试项目讲解(详情)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
测试经验分享,Web自动化测试+性能测试面试项目讲解(详情)

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)

前言

Web自动化项目讲解:

1、首先我们搭建好Python+selenium+pytest/unittest单元测试框架环境,然后打开pycharm,新建一个python文件,通过form selenium import webdriver导入webdriver模块。

通过driver=webdriver.Chrome(),(框ruang目)创建一个浏览器对象,在通过get方法打开我们项目测试环境的URL地址,之后开始编写银行首页界面测试用例通过driver.get命令打开我们项目的网址,maximize_window()最大化窗口

2、进入定位在线申请框,发现是img标签通过find_element_by_xpath()方法进行定位,并调用click()方法进行点击操作

编写切换窗口,首先用handles3= driver.window_handles方法进行获取当前所有的窗口句柄

通过for循环进行窗口句柄的切换至’在线申请窗口’,并调用break结束窗口的切换

3、编写易贷申请页面用例、定位个人易贷申请框,发现是img标签调用find_element_by_xpath()方法进行定位,并调用click()方法进行点击操作

编写切换窗口操作,首先用handles3= driver.window_handles方法进行获取当前所有的窗口句柄

通过for循环进行窗口句柄的切换至‘个人易贷申请窗口’,调用break结束窗口的切换

4、编写贷款信息填写自动化测试用例,定位姓名、证件号、手机号、工作单位所在地区、户籍所在地区详细资料、申请额度、个人今年收入、家庭总资产、逾期次数、验证码。

5、定位发现输入框都是是input标签、driver对象通过调用find_element_by_id()方法进行定位输入框,并且通过send_keys()方法输入内容、定位证件类型、贷款种类、职务职称、发现都是下拉选择框driver对象通过调用find_element_by_id()方法进行定位、并且通过Select(s).select_by_index()索引位来进行选择编写信息确认测试用例,调用贷款信息填写方法,定位提交按钮元素,发现是a标签此时调用find_element_by_linktext(),并调用click()方法

6、测试用例编写完成,在主函数中运行测试用例,输出测试报告(详细步骤:实例化一个unittest中的defaultTextloader的discover类的对象,

用于放置自动化测试用例,导入HtmlTestRunnerNEW包,实例化一个HtmlRunner类的对象runner调用run方法用于运行discover存放的自动化测试用例)

7、我刚开始用selemium做ui自动化测试的时候都是用线性脚本去写的,所以会存在一些脚本冗余的情况。
所以后面我采用了7层封装,分别是:

1)config包:用来存放项目的配置项,或者配置文件(服务器的信息,数据库的信息)
2)data包:用来存放测试用例的数据(一般将用例的数据保存在excel表格或者mysql数据库中)
3)lib包: 用来存放引用的第三方包(例如:HtmlTestRunner这种生成报告的第三方文件)

4)report包:用来存放运行自动化测试用例以后生成的报告
5)run包:用来存放运行测试用例的runner对象(不同的runner对象运行不同的用例)
6)testcase包:用来存放被运行的测试用例(用例一般封装在unittest框架中)
7)utils包:用来存放封装的一些工具类(例如操作excel表格的工具类,操作mysqlI的工具类,操作配置文件的工具类)

jmeter做基准测试、压力测试、并发测试

1、基准测试:较小的压力,提供基础的数据

我们先要看性能测试的需求分析 ,关于测试人员测试出来的问题,及用户反馈的问题综合分析编写测试计划,测试计划编写完成就开始执行性能测试。

首先打开bodboy录制接口,在file窗口下把badboy里面录制的接口导出jmeter格式:Exprot to jmeter文件并修改文件名称保存在某个目录下,然后打开Jmeter创建一个测试计划。

在测试计划中添加接口测试线程组并修改名称,性能测试我是分为4给阶段来测试的那么分别是:基准测试,压力测试,并发测试,失效恢复测试,

我先添加的是基准测试接口,在基准测试接口下添加线程组,在线程组下添加HTTP Cookie Manager管理器、User Defined Variables用户变量、HTTP Header Manager信息头管理器。

同步定时器输入用户组数量及通过的时间设定,然后导入在bodboy录制的接口地址,添加聚会报告,添加查看结果树,点击运行查看响应数据,分析性能的结果,然后输出性能测试报告

2、压力测试:接近性能的拐点或者瓶颈,进行持续的压测
性能测试的目的:就是不断的增加服务器的压力 ==》可以从2个方面去考虑,一个是不断的增加

用户的数量(站在用户的角度),一个是不断的增加请求数(站在服务器的角度)

性能测试的模型:
1)用户并发模型:不断的去增加并发用户数(并发测试就是基于这种模型)
2)吞吐量模型:不断的去增加请求的数量(压力测试就是基于这种模型)

首先在Jmeter测试计划下创建一个线程组并修改名称,然后添加jp@gc - Throughput Shaping Timer定时器,在定时器中点击add ROW(设置请求数,设置并发数,设置持续时间进行压测)(start RPS起始每秒请求数,End RPS结束每秒请求数,Duration,sec加载时间),再添加http请求,和添加查看结果树,

和jp@gc - Composite Graph、>圆形管理插件
jp@gc - Hits per Second、
>每秒点击数监控插件
jp@gc - Transactions per Second、==>响应时间曲线监控插件
jp@gc - Response Times Over Time ==>TPS曲线监控插件

然后添加一个聚会报告,查看结果分析主要是看rps(hps)和tps数据,并输出测试报告。

3、并发测试:所有的用户在同一时间调用同一个接口

1)相对并发 ===》没有设置集合点和基准测试一样
2)绝对并发 ==》需要设置集合点synchrnizing timer,让所有的用户加载完成之后才去发送接口请求

那么并发测试又分为相对并发和绝对并发

我做绝对并发测试时需要在测试计划中创建一个线程组并修改名称,然后添加同步定时器,设置一个集合点synchrnizing timer,让所有的用户加载完成之后,才去发送接口请求,那么在定时器中点击add ROW(设置请求数,设置并发数,设置持续时间进行压测)(start RPS起始每秒请求数,End RPS结束每秒请求数,Duration,sec加载时间),再添加http请求,和添加查看结果树,

然后添加一个聚会报告,查看结果分析主要是看rps(hps)和tps数据,并输出测试报告。

性能测试是怎么测的?

在测试之前首先要了解它的准出原则:TPS、响应时间、并发数、吞吐量等分别是多少

我们公司是用jemeter做的性能测试,那我就拿我之前做的一个场景来说吧,那是从登陆到进入个人中心查看用户信息这么一个流程。目标是对服务器进行压力和稳定性测试,以及对CPU、内存的一个压测。

首先的话,在jemeter中创建一个线程组,添加http请求,填写相关信息,url、端口号等等,根据文档上写的我们是做五百用户的一个并发 ,把线程数设置为500,加载时间设为10s,模拟500个用户同时操作。

还需要添加定时器,有两个参数,第一个是并发数,设置为500,第二个是时间,设置时间为10000ms。

为了查看测试结果,可以添加聚合报告,聚合报告一般观察平均值、90%、95%用户请求时间、最大最小请求时间、错误率,还可以借用其他插件生成曲线图,基本上就是这样的

如果不符合,那就需要根据聚合报告、去找一下性能瓶颈,在根据瓶颈进行分析,给出调优方案,在最后完成一下性能回归测试 。

完整版!企业级性能测试实战,速通Jmeter性能测试到分布式集群压测教程

下面是我整理的2025年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(尾部小惊喜)

人生最动人的风景,往往藏在最难攀爬的高处。当你觉得力竭时,请记住:每一次坚持都在雕刻更强大的自己。别问路有多远,只管迈步向前;别怕山有多高,向上攀登就是答案!

你体内沉睡着改变世界的力量!每个清晨都是改写命运的新机会,每次挫折都是精心包装的礼物。当全世界都在说"不可能"时,正是你证明"可能"的最好时机!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/3 17:11:00

面试官问:0 基础能不能转大模型?到底怎么转?

站在现在回头看,会发现一个有趣的现象: AI 大潮滚滚 2 年,流量的风向能变,岗位的 JD 能变,各家模型能天天更新,但真正能落地的东西,并没有变。 这 2 年里,我带过很多转行同学&#…

作者头像 李华
网站建设 2026/2/6 1:27:30

计算机毕业设计springboot基于JAVA的渝行旅游热点推荐系统 基于Spring Boot框架的重庆旅游热点智能推荐系统设计与实现 利用Java技术构建重庆旅游热点推荐平台的Spring Boo

计算机毕业设计springboot基于JAVA的渝行旅游热点推荐系统6447u9(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 随着互联网技术的飞速发展,旅游行业的信息化管理需…

作者头像 李华
网站建设 2026/2/7 1:53:07

Walrus Haulout 黑客松获胜名单揭晓

数据的未来离不开信任、透明性和可验证性。但要真正实现这一愿景,需要全新的思维方式、不同以往的工具,以及敢于跳出固有框架的开发者。 2025 年 Haulout 黑客松正式启动,这是首个将三个正在重塑数据协作方式的工具整合在一起的黑客松活动&a…

作者头像 李华
网站建设 2026/2/11 12:06:48

Advantageous 英文单词学习

1️、基本信息单词:advantageous词性:形容词发音: 🇺🇸 /ˌd.vnˈteɪ.dʒəs/🇬🇧 /ˌd.vənˈteɪ.dʒəs/词源: 来自拉丁语 advantage(有利,优势&#xff…

作者头像 李华