欢迎来到三人行教育网,代理招生网站!

潍坊切换城市

咨询热线 400-6169-615

位置:三人行教育网,代理招生网站 > 潍坊新闻资讯 > 潍坊教育新闻 >  潍坊达内软件测试工程师培训

潍坊达内软件测试工程师培训

来源:三人行教育网,代理招生网站

2021-10-17 14:48:12|已浏览:6次

潍坊达内软件测试工程师培训
软件测试培训机构达内经典语录:成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成。
.


数据库压力测试方法小结

一、前言
在前面的压力测试过程中,主要关注的是对接口以及服务器硬件性能进行压力测试,评估请求接口和硬件性能对服务的影响。但是对于多数Web应用来说,整个系统的瓶颈在于数据库。
原因很简单:Web应用中的其他因素,例如网络带宽、负载均衡节点、应用服务器(包括CPU、内存、硬盘、连接数等)、缓存,都很容易通过水平的扩展(俗称加机器)来实现性能的提高。而对于MySQL,由于数据一致性的要求,无法通过增加机器来分散向数据库写数据带来的压力;虽然可以通过前置缓存(Redis等)、读写分离、分库分表来减轻压力,但是与系统其它组件的水平扩展相比,受到了太多的限制。
二、常见的数据库压测指标
与接口压测指标类似,数据库相关指标如下:
TPS/QPS:衡量吞吐量。
响应时间:包括平均响应时间、最小响应时间、最大响应时间、时间百分比等,其中时间百分比参考意义较大,如前95%的请求的最大响应时间。。
并发量:同时处理的查询请求的数量。
三、使用sysbench进行数据库压测
1、基本介绍
sysbench是跨平台的基准测试工具,支持多线程,支持多种数据库;主要包括以下几种测试:
cpu性能
磁盘io性能
调度程序性能
内存分配及传输速度
POSIX线程性能
数据库性能(OLTP基准测试)
该工具可以自动帮你在数据库里构造出来大量的数据,你想要多少数据,就自动给你构造出来多少条数据。同时还可以模拟几千个线程并发的访问数据库,模拟使用各种各样的 SQL 语句,包括模拟出来各种事务提交到你的数据库里去,甚至可以模拟出几十万的 TPS 去压测数据库。
2、安装sysbench:
3、基于 sysbench 构造测试表和测试数据:
首先需要在自己的数据库里创建好一个测试库,我们可以取个名字叫做 test,同时创建好对应的测试账号,可以叫做 root,密码是 123456,让这个用户有权限可以访问 test。
基于 sysbench 构建 20 个测试表,每个表里有 100 万条数据,接着使用 100 个并发线程去对这个数据库发起访问,连续访问 5 分钟,也就是 300 秒。
4、执行测试:
(1)测试数据库的综合读写 TPS,使用的是 oltp_read_write 模式:
(2)测试数据库的只读性能,使用的是 oltp_read_only模式:
(3)测试数据库的写入性能,使用的是 oltp_write_only 模式:
使用上面的命令,sysbench 工具会根据你的指令构造出各种各样的 SQL 语句去更新或者查询你的 20 张测试表里的数据,同时监测出你的数据库的压测性能指标,最后完成压测之后,可以执行 cleanup 命令,清理数据。
5、压测结果分析:
按照我们上面的命令,我们是让它每隔 1 秒都会输出一次压测报告的,此时它每隔一秒会输出类似下面的一段东西:
[ 10s ] thds: 100 tps: 500 qps: 5000 (r/w/o: 3500/1000/500) lat (ms, 95%): 20 err/s: 0.00 reconn/s: 0.00
thds:100,这个意思就是有 100 个线程在压测
tps:500,这个意思就是每秒执行了 500 个事务
qps:5000,这个意思就是每秒可以执行 5000 个请求
(r/w/o: 3500/1000/500):这个意思就是说,在每秒 5000 个请求中,有 3500 个请求是读请求,1000 个请求是写请求,500 个请求是其他的请求,就是对 QPS 进行了拆解
lat (ms, 95%):20,这个意思就是说,95% 的请求的延迟都在 20 毫秒以下
err/s: 0.00 reconn/s: 0.00:这两个的意思就是说,每秒有 0 个请求是失败的,发生了 0 次网络重连
结束语
使用sysbench工具可以直接对数据库性能进行评价,但是在结果展示方面还有待进一步提升。当然后续可以对结果进行进一步处理,比如写入表格或作图,会更加直观。软件测试培训网格言:不要慨叹生活的痛苦!慨叹是弱者。——高尔基.
潍坊达内软件测试工程师培训



软件测试培训机构达内经典语录:那些尝试去做某事却失败的人,比那些什么也不尝试做却成功的人不知要好上多少。.
软件测试面试问题的一些思考

软件测试的面试,从面试官上分为两类,人事面试和技术面试。
人事面试的重点,就是要突出自己“稳定!”“稳定!”“稳定!”。
第一个经常挂掉的问题,你的职业规划是什么。
很多人在遇到这个问题的时候,急于表现自己,想要展示自己的野心之类的,或者为了突出自己的能力就说自己想要往自动化或者性能方面发展,结果直接被人事说公司没有自动化或者性能的规划,第一个问题就out出局。
这个时候你要怎么办,记住“稳定”两个字,你的目的是找到一家可以长久做下去的公司,然后在项目中学习公司所需要的技术,和公司一起成长。
你上一家的离职原因是什么。
其实大家都心知肚明为什么离职,要么干的不爽,要么工资太低。但是人事要通过这个问题,看看你对上一家公司是否有怨言、你是不是一个安稳的人、你会不会因为一个很随便的原因离开工作岗位等等。
所以你要给人事的感觉是,我上一家是迫不得已才离职的,我本来是想和公司呆到天长地久的,我们公司搬迁了我实在是太远了、我们公司的项目组解散了我不愿意闲着、公司的主营业务从技术研发转为了销售等等,所以我准备换一家然后稳定的做下去。
你对我们公司有什么了解。
有很多人在面试前只关注自己的职业技能背的怎么样,关注和了解你接下来要去面试的公司也是非常重要的职业素养。经常遇到有人在面试前下载了对方的app应用或者浏览了网页,因为发现了一些细小的bug而面试成功的。
......
人事面试多为一些琐碎的问题,回答的时候灵活一点,只要“稳定”二字常记胸中,人事关都是分分钟秒过的。
说到技术面试,真是心口疼,每个人都把学的内容混着记混着说,只记表面现象,不思考内在原因,这就导致了技术面试屡屡被刷。
其实的软件测试面试技术这一轮是真的好过,绝大多数人遇到的面试官,四到六年测试经验偏多,他们自身都是在工作中摸索,懂的东西很有限,所以大部分的问题其实都是集中在业务层面上。技术资深的面试官有没有?有啊,只是你们现在还面不到。
那么关于业务层面的问题,就有限的很了,这么多年问题都没有换过,没有一点新意的。你要关注的,就是如何让自己在芸芸众生中突出出来,让面试官能够记得住你。
你先来个自我介绍。
自我介绍的时候面试官真的是想要知道你什么时候生的你在哪里读书的吗?他想要知道的是这个人能不能给我一点惊喜。
所以在面试的时候你要突出的是自己会哪些东西,我在项目中除了写测试用例和测试计划等文档,我还要测试app的接口、还要编写自动化的脚本、维护自动化的框架、分析服务器的性能等等。当然前提是你真的会。
介绍一下你的项目。
在回答项目情况的时候,根据项目的大小来回答,一个页面不超过3-4个的app,那就是你一个人测试的了,多一点的项目,我们分成android和ios两块,或者分成浏览器和手机端来测。所以介绍项目的时候不要说自己只测了用户信息这种东西,而且一遇到不太熟悉的就说这不是我测的,明显给自己挖坑。
怎么说?首先公司喜欢能够独立承担测试任务的人,所以一般的app都可以首先强调项目组就我一个测试,整个项目的测试工作都是我一个人完成的;
第二点,一定记住不要像销售一样去介绍项目,不要说项目里面是卖什么的主要是针对什么人群卖东西的,要记住你是一个技术,你要说的是在项目中用到了什么测试方法、用的是什么测试工具等等。举个例子,如果你是做短视频或者其它app项目的,你可以说我上个项目是一个基于手机端开发的短视频app项目,我是负责android测试的,在项目里面我们对整个项目进行了测试用例和测试计划的编写、对业务功能进行了测试、接口测试用了jmeter来验证,除了这些还做了像弱网、交叉中断、兼容、安全等手机的专项测试,会使用到fiddler、xmind、navicat等一些测试工具。
这个时候面试官就该挖细节了,他会让你拿项目中一个具体的例子来进行说明。
很多人开头就是用户的注册和登录,这种模块第一是已经被人说烂了,面试官已经耳朵起茧,第二是这种模块太基础了,基础到你一说注册登录面试官第一反应就是这个人应该是个小白。
所以我们在说项目的时候,应该让自己说点和别人不太一样的,你可以用优惠券模块、商品评论模块、视频上传模块、视频播放、用户视频浏览记录和视频推送功能、购物车模块、push信息推送管理等等。
介绍模块的时候,一定要记住从功能点的角度带入测试方法和测试工具。
例如,很容易被人忽略的push信息推送,首先我们会在后台添加push信息,信息里面会包括推送的文字信息、图片信息、点击的跳转链接、推送的账号、发送时间、推送的用户标签选择等等,要测试的内容除了正常的内容,还需要考虑空的文字、超长的文字、特殊的符号等;图片的话需要考虑不发图片、不同尺寸的图片、不同格式的图片、损坏的图片等;
跳转链接有正确的站内链接、失效的和错误的链接、站外链接、无链接等;时间有过去的时间、未来的时间、错误的时间、不填时间等;特定的推送账号有单个账号、多个账号、空信息的账号、错误账号等;
用户标签可以不选标签、选单组标签多组标签等等;
然后还要对不同的有效选项进行内容组合的测试,查看推送的内容、时间和人群是否正确,以及如果用户点击了错误或者正确的推送内容如何展示,用户点击了推送之后后台会不会有数据的统计等等,每次操作完都需要用navicat连接数据库查看操作结果是否成功,数据是否正常。
怎么去定位一个bug。
定位bug的问题,很多就算在项目中工作了一两年的小测试都搞不清楚。但其实只要你把数据的流通过程想清楚的话,这就变成了一个送分题。
还是举个短视频app的例子吧,假如我每天都是看烹饪类的内容,但是给我推送的却还是摄影的视频,这就是一个bug。那这个bug是哪里出的问题呢?
首先我们需要抓包看看我们app端发送给服务器端的用户信息和视频的标签与编号是否正确,推送出错有可能是app客户端发错了信息导致了服务器保存的内容有问题;
如果客户端发送的信息正确,那么我们要看看服务器返回的响应内容是否正确,如果服务器返回有问题的话,那么a.数据库的数据保存错了,例如把用户常看的视频id 001保存成了002,b.服务器的处理逻辑有问题,给用户推送了观看频率比较低的视频种类;
最后,如果服务器端没有错误,内容返回正常,那么就应该是app端对于响应内容的判断有问题,app端取错了对应的视频链接或位置等等。
然后就是流程类的问题,包括了项目流程、测试流程、产品研发流程、产品的生命周期、缺陷BUG的生命周期等等,这些就不在这里赘述了。
再然后就是关于项目中各个测试方面涉及到的数据问题。
项目里面的用户量有多少:100万就很好了;
发了多少版本:以自己的项目时间来算,如果是在项目中呆了半年,差不多就是十四五个版本;
项目时间有多长:一般第一个版本都是2个月左右,现在都是迭代更新,至少也要半年以上;
测试用例写了多少:在项目中的总用例数可以说一千七八九都没有问题;
提了多少个bug:第一个版本问题会比较多,后面迭代的版本平均下来四五十个还算正常,所以总bug数大概说个七八百就可以;
项目有多少个接口:六七八十都可以;
自动化用例写了多少个:一般占功能用例数量的三分之一就差不多,说个五六百也可以;
性能测试的并发用户测了多少个:这个数量是根据用户量算出来的,C=nL/t,总用户100万,活跃用户最多能有个10%也就是10万左右,每个用户访问系统的时间平均10分钟,用户活跃时间从早上9点到晚上12点共15个小时,那么10万*30/15*60等于1100多。
接着就是一些工具的使用方法。
抓包工具fiddler:fiddler在工作中用来做什么。a.用来做接口测试,b.用来分析和定位bug位置,c.fiddler的常用方法,断点设置、过滤器的使用、限速的功能操作等;
接口测试jmeter:参数化(特别是csv、excel、txt、dat文档的读取)、json提取器和正则提取器(值的上下级传递)、控制器的使用、cookie管理器的设置和作用、头部管理器的配置和关键参数的作用、数据库jdbc的配置和连接以及查询值的保存与传递;
编程语言python:for循环、常用模块、文件的读取、数据库的连接、selenium自动化、requests接口测试、appium手机自动化;
性能工具loadrunner:常见函数、指标项指标值、服务器性能瓶颈的分析;
安卓测试adb:常用adb命令(日志查看、截图、软件安装卸载等)、adb shell monkey的命令和参数、monkey结果的分析;
linux服务器:常用的命令(查找、过滤、权限操作、进程、系统监控、日志查看)
......
技术方面只要能把大方向的问题,特别是测试点和项目模块说清楚,然后把项目组最需要的fiddler和jmeter说清楚,其它回答不上的或者说不清楚的问题直接诚实的说暂时没做过不知道,但是会去学习就好了,那么技术面的把握还是很大的。说的更多只是对你在谈薪水的时候更有用。
很多公司其实并不需要技术太厉害的人,只要你能保证功能不漏测就好。
最后祝所有的小伙伴都能找到心仪的工作。软件测试培训网格言:我们只有献出生命,才能得到生命。——泰戈尔。


潍坊达内软件测试工程师培训
达内软件测试培训学校励志语录:当你迷失在黑暗中,除了前行别无他法。
。软件测试讲师 讲师李旭辉 |
工作经历
曾参与国内某知名ERP软件、 金融理财软件的测试,曾主持搜狗输入法/浏览器、搜狗听 写/手机助手App的测试工作
授课风格
讲课生动,通俗易懂,擅于知识拆分细化, 融会贯通的讲解方式软件测试培训机构达内经典语录:不是境况造就人,而是人造就境况。。
潍坊达内软件测试工程师培训



专业软件测试培训座右铭:在无限的时间的河流里,人生仅仅是微小又微小的波浪。——郭小川.
  • 相关阅读