这或许是牛客上比较全系列的-测试|测开学习路线?
哈喽,大家好,我是小浪. 有段时间没有更文了, 那么最近很多找我咨询的同学都是25届考研未上岸的,以及Java开发方向秋招投递无果准备学习软件测试的同学, 也有很多小伙伴会问我,如何学习入门软件测试呢? 那么今天一文讲清楚如何学习以及拿到一份offer, 感谢阅读,如果能有幸得到你点赞,送花,将感激不尽~
声明: 本文纯UP手写, 所总结内容纯个人经验,学习内容纯干货和路线,感谢你的阅读和支持.
一.王炸学习路线
L1.测试用例设计
第一阶段学习项目开发流程,测试工作流程,理解大厂规范测试流程,包括需求评审,用例评审,技术评审等流程与概念.
同时我们需要掌握编写测试用例的万能公式,比如六大法则,学会如何定位问题,判断一个bug属于前端还是后端, 如何与RD(研发同学)高效合理沟通, 让测试需求正常推进.
L2.接口测试入门
掌握Postman,Apifox等接口测试工具的使用,熟悉常见网络协议如UDP,TCP,HTTP等,熟悉常见接口类型如get.post等,
掌握请求头,请求体,请求数据格式等. 掌握接口用例的设计,断言,接口测试组合参数的校验,接口安全测试等.
L3.抓包工具Charles
掌握如Charles(大部分公司通用),Fiddler等抓包工具的使用,熟悉基本配置方法, 抓取HTTP/HTTPS接口方法, 掌握请求体/响应体等数据格式, 能够看懂状态码和 msg, 能够独立复现bug/crash/anr等场景, 根据复杂/组合场景定位问题.
L4.Web端UI自动化测试
掌握常见自动化框架如Selenium,Robot Framework,Playwright任意一种
能够掌握常见元素的定位方法, 可以根据框架自带的驱动如Google.driver(), 执行相关自动化事件, 熟练掌握浏览器定位元素方法,
掌握绝大部分常见的操作如点击,双击,右键,滑动,文本输入,上下滚动等,达到独立设计自动化脚本的能力.
L5.Web端接口自动化测试
掌握一门接口自动化测试框架, Java方向如Junit,TestNG(推荐学习), Python方向如: Pytest,Request
掌握编写接口自动化用例的方法,掌握常见用例设计规则,配置文件格式,用例代码规范等
能够结合Selenium/appium等框架设计测试用例, 能够根据业务需求转化功能用例, 提高测试效率与质量.
L6.移动端App-UI自动化测试
掌握移动端测试框架如Appium(当下最主流)的基本使用, 先成功搭建appium的测试环境(非常麻烦,运气不好的同学在1-2天左右搞定, 运气好1小时搞定~)
掌握Appium定位元素的方法,如id,name,Xpath,text等等, 掌握常见手机型号的驱动配置,并启动Appium服务器连接,如下:
desired_caps = { "platformName": "Android", "platformVersion": "10.0", "deviceName": "Android Emulator", "appPackage": "com.ss.android.ugc.aweme", "appActivity": "com.ss.android.ugc.aweme.splash.SplashActivity", "automationName": "UiAutomator2", "noReset": True } driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
能够结合Python+appium+adb+tidevice+WDA+Uiauto.dev实现任意APP(抖音/微信/小红书)的简单自动化Demo脚本.
L7.移动端App接口自动化测试
掌握Android/IOS开发相关内容,熟悉SDK,IPA包底层打包,封装原理,能够使用Python+Appium+Allure+adb/tidevice等实现
底层接口的自动化测试,能够获取接口的返回值并通过用例驱动的方式校验底层逻辑的一致性.
能够独立设计打包底层接口测试用例,与开发沟通在测试包(测试环境)上开放额外入口进行底层SDK/IPA接口测试
L8.服务端性能测试
掌握常见压力测试工具Jmeter/perdog(收费,很贵,腾讯出品)/loadrunner等压测工具的使用.
能够在"技术评审"时评估出相关高并发接口的稳定性和健壮性,并提出压测接口等相关方案,落地接口用例的设计与执行.
L9.CI,CD,DevOps
掌握持续集成,持续交付(CI/CD)工具如jenkins等基本使用
掌握 pipline(流水线)的常见语法,并能够结合Gitlab,Maven配置等,掌握jenkins的常见配置和插件管理
pipeline { agent any // 可以指定执行任务的代理,可以是 any、none、label 等 environment { // 定义环境变量 MY_VAR = 'Hello, Jenkins!' } options { // 流水线的配置选项 timeout(time: 10, unit: 'MINUTES') // 设置流水线超时时间为 10 分钟 buildDiscarder(logRotator(numToKeepStr: '5')) // 保留最近 5 次构建日志 } parameters { // 定义构建参数 string(name: 'MY_PARAM', defaultValue: 'default_value', description: 'This is a parameter') booleanParam(name: 'MY_BOOL_PARAM', defaultValue: true, description: 'This is a boolean parameter') } stages { // 定义流水线的阶段 stage('Checkout') { // 阶段名称:检出代码 steps { // 阶段内的步骤 checkout([$class: 'GitSCM', branches: [[name: '*/master']], userRemoteConfigs: [[url: 'https://github.com/your/repo.git']]]) // 从 Git 仓库检出代码 } } stage('Build') { steps { echo 'Building...' // 打印信息 sh 'mvn clean package' // 执行 Shell 命令,例如使用 Maven 构建项目 script { // 可以使用 Groovy 脚本块 def buildResult = sh(script: 'mvn -v', returnStdout: true).trim() // 执行命令并获取结果 echo "Build result: ${buildResult}" } } } stage('Test') { steps { echo 'Testing...' sh 'mvn test' // 执行测试命令 junit '**/target/surefire-reports/TEST-*.xml' // 收集 JUnit 测试报告 } } stage('Deploy') { when { // 条件判断,仅当 MY_BOOL_PARAM 为 true 时执行 expression { return params.MY_BOOL_PARAM } } steps { echo 'Deploying...' sh 'ansible-playbook deploy.yml' // 执行部署命令,例如使用 Ansible 部署 } } stage('Parallel Stages') { // 并行阶段 parallel { stage('Task 1') { steps { echo 'Task 1 running...' sh 'task1.sh' } } stage('Task 2') { steps { echo 'Task 2 running...' sh 'task2.sh' } } } } } post { // 构建后的操作 success { // 构建成功后的操作 echo 'Build succeeded!' emailext body: 'Build succeeded!', subject: 'Build Success', to: 'you@example.com' // 发送邮件通知 } failure { // 构建失败后的操作 echo 'Build failed!' emailext body: 'Build failed!', subject: 'Build Failure', to: 'you@example.com' } always { // 无论成功失败都执行的操作 cleanWs() // 清理工作空间 } } }
能够将自动化脚本结合到jenkins流水线,并成功实现定时触发,流水线调度,测试报告自动生成如Allure,HTML等
L10.测试平台/工具开发
掌握Python后端开发框架如Django,FastAPI,flask任意一种的使用,熟练运用任意框架进行接口开发
能够根据Python+Django/FastAPI+Vue+MySQL进行测试平台,测试工具的开发,并具备方案设计,从0到1的思维能力.
能够根据具体业务,部门测试同学手工用例的痛点,尽可能将手工用例转化成自动化用例,并保证执行结果可靠.
L11.录制回放,精准测试能力
这一part不推荐大家当前去了解,有一定工作经验的同学可以投入时间来研究.
为保证功能用例的覆盖率,需要对代码进行精准测试,一般大厂像快手,美团,得物都有精准测试平台.
精准测试即通过代码染色器的方式,针对调用到的接口进行颜色标记,比如当前需求,功能用例大概覆盖了80%的代码,
那么这80%的代码会被标记成绿色(假设), 未调用到的接口代码是红色,通过代码染色器的方式来判断用例覆盖率.
写在最后,废话不多说,本文纯纯干货,对于想入行测试方向的小伙伴来说,无疑提供了一盏比较明亮的灯,有光,你才能走的更远,如果你对于入门测开方向有任何疑问,欢迎私信,UP提供解答,谢谢
#Java转测开##Java转测试##25届春招##测试开发学习路线##软件测试#