测试

大型网站技术架构--性能

人走茶凉 提交于 2020-12-18 09:38:33
不同视角 用户眼中的性能: 客户的机器,浏览器,网络状况,通信协议,服务器处理时间,浏览器解析时间。另外 1s左右 ,对用户来说是无区别的。 开发严重的性能:程序本身和相关子系统。响应延迟,系统吞吐量,并发处理能力,系统稳定性等。 运维人员:关注基础设施的资源和性能的利用率,合理利用,最优发挥(不浪费,不堵塞) 性能指标 响应时间 :10000/n次时间和,除以10000/n。 并发数 吞吐量 :TPS(每秒事务数),HPS(每秒请求数),QPS(每秒查询数) 。理论上讲 应该是个抛物线,峰值即为吞吐量值。 吞吐量,并发数,响应时间之间的关系 用高速公路形容很接近。车越少(并发数),资源越浪费(内存,硬盘,网络),车增多,开始吞吐量上升,到达峰值后会随之下降,直至瘫痪。 性能计数器:描述操作系统的性能指标(System Load,对象与线程数,内存使用,cpu使用,磁盘及网络io等指标) 测试方式 性能 测试:验证资源可接受范围 稳定性 测试:不均匀的施加压力,验证稳定性 压力 测试:超过安全负载的情况下,继续对系统施加压力,直至系统崩溃或者不能处理请求,来获取系统最大压力承受能力。 负载 测试:对系统不断增加并发,不断增加压力,直至系统或者应用多项指标达到临界值 性能优化 web前端,应用服务器,存储服务器性能优化。 Web前端优化 浏览器优化 1 减少http请求 2

内核同步机制——自旋锁

瘦欲@ 提交于 2020-12-10 06:35:33
由于关键代码区可以跨越了多个函数或数据结构,需要有更通用的同步方法:锁。 内核中最常见的一种锁就是自旋锁。相同的锁可用于多处。 自旋锁可用在不可睡眠的场景,如中断处理函数。自旋锁是一种互斥设备,只有两个值: “ 锁定 ” 和 “ 非锁定 ” 。它通常实现为一个整数值的某个比特位。想获取某个锁的代码首先测试相关的位,如果锁可得,则该位的 “ 锁定 ” 位被置位,代码继续执行,反之,代码将进入一个紧凑的循环,不停地检测锁定位直至自旋锁变得可得。该循环是自旋锁的 “ 旋转 ” 部分。自旋锁主要用于多处理器的情况下。 1. 通用自旋锁 相关操作: DEFINE_SPINLOCK(mr_lock) spinlock_tmy_lock = SPIN_LOCK_UNLOCKED;// 静态初始化 或 voidspin_lock_init(spinlock_t *lock);// 动态初始化 获取自旋锁 voidspin_lock(spinlock_t *lock);// 不可中断的 释放自旋锁 voidspin_unlock(spinlock_t *lock); 使用自旋锁时要禁止中断,禁止睡眠,并且应当尽可能减少占用自旋锁的时间。 其他函数 voidspin_lock(spinlock_t *lock); // 在获取自旋锁之前,禁止中断 voidspin_lock_irqsave

你真的了解软件测试行业吗?

大憨熊 提交于 2020-04-22 08:38:20
  很多人懵懵懂懂进入了软件测试行业,有些人做的开开心心,事业发展顺顺利利,有些人不断地换工作,每次工作都不开心,不知道是自己怎么了,还是周围怎么了。在不断地换工作过程中,你有考虑过自己是否适合这个行业吗?下面我来给你讲下软件测试人员的基本素质。   软件测试人员的基本素质你根据自己的判断觉得自己很OK,想入行,但软件测试行业会喜欢你吗?你符合行业的职业道德吗?可能有些人觉得这都不重要,重要的是我喜欢。但是我个人觉得这很重要。这里插一个真实的例子:一家 杭州软件测试 (www.proginn.com/users/hangzhou/csgcs/)公司主管上周开掉一个很有技术能力的成员,一个执行能力、理解能力、做事非常有效的成员,我曾在领导面前多次夸赞他的做事有效率,但最终我不得不下定决心开掉他。理由是:无团队协作精神,无法和他人一起和谐开展工作。   学习技术都是很快的,只要你聪明,只要你用心,技术都应该不是难事,但有些素养是很难培养的,这个跟成长的环境、接受的教育、心智的成熟等都有很大的关系。人无完人,有些人能准确的感知自己是否符合要求,对做的不好之处会自动调整;有些人需要提点才能感知,他会按照别人的意见去改变:而有些人被提点了也感觉不到,因此他们一直不会变,他们觉得自己没有错,为什么要改?而团队中如有一个人一直不断地同一个错误,终究会被团队抛弃。   每个行业除了对硬技术的要求

swoole 安装测试

我的梦境 提交于 2020-04-18 02:08:17
Swoole安装 安装完PHP后,即可安装swoole扩展。 swoole扩展下载地址: https://github.com/swoole/swoole-src/releases 尽量选择stable版本,alpha版本最好仅用于实验新特性。 解压源码至任意目录,执行如下命令: cd swoole-src-swoole-1.7.6-stable/ phpize ./configure --enable-async-mysql sudo make sudo make install (注:swoole的./configure有很多额外参数,可以通过./configure --help命令查看,这里仅开启其中async-mysql项,其他均选择默认项) 安装完成后,进入sudo gedit /etc/php5/fpm/目录下,打开php.ini文件,在其中加上如下一句: extension=swoole.so 随后在终端中输入命令 php -m 查看扩展安装情况。如果在列出的扩展中看到了swoole,则说明安装成功。 问题 遗憾的是,我的 phpinfo 有 swoole 了,但是php -m 却发现不了,果断推断是 php.ini 配置问题,于是乎,修改了 sudo gedit /etc/php5/cli/php.ini .同样添加了 extension=swoole.so,

tachyon与hdfs,以及spark整合

核能气质少年 提交于 2020-03-20 22:13:41
3 月,跳不动了?>>> Tachyon 0.7.1伪分布式集群安装与测试: http://blog.csdn.net/stark_summer/article/details/48321605 从官方文档得知,Spark 1.4.x和Tachyon 0.6.4版本兼容,而最新版的Tachyon 0.7.1和Spark 1.5.x兼容,目前所用的Spark为1.4.1,tachyon为 0.7.1 tachyon 与 hdfs整合 修改tachyon-env.sh export TACHYON_UNDERFS_ADDRESS=hdfs://master:8020Dtachyon.data.folder=$TACHYON_UNDERFS_ADDRESS/tmp/tachyon/data12 上传文件到hdfs hadoop fs -put /home/cluster/data/test/bank/ /data/spark/ hadoop fs -ls /data/spark/bank/Found 3 items-rw-r--r-- 3 wangyue supergroup 4610348 2015-09-11 20:02 /data/spark/bank/bank-full.csv-rw-r--r-- 3 wangyue supergroup 3864 2015-09-11 20

Mockito(一)——入门篇

醉酒当歌 提交于 2020-03-02 09:06:35
Mockito是一种mock工具/框架。我理解EasyMock有点过时了,Mockito是现在比较流行的。 什么是mock?说的直白一点,大家都知道unit test应该是尽可能独立的。对一个class的unit test不应该再和其他class有任何交互。 现在有一个类,扫描一个目录并将找到的文件都上传到FTP server。该类对于不同的FTP响应(找不到FTP server 或 上传成功,或上传失败),有一些后续操作。 在写这个类的UT时,我们就必须虚构出来一个FTP对象。这样在UT中,这个虚构的对象能够代替真正的FTP,对被测试类的调用做出一定的响应。从而知道被测试类是否正确的调用了FTP并做出一些正确的期望的响应。从而达到测试的目的。 mock可以模拟各种各样的对象,从而代替真正的对象做出希望的响应。 关于mock的概念和EasyMock,可以参考: Mock object and EasyMock framework http://blog.csdn.net/OnlyQi/archive/2011/04/26/6364885.aspx 官网: http://mockito.org/ 一篇很好的入门文章: http://blog.csdn.net/huoshuxiao/archive/2010/12/30/6107835.aspx 一些稍微复杂且实用一点的例子: http

Mockito(三)--完整功能介绍

泄露秘密 提交于 2020-03-02 08:38:08
回到官网:http://mockito.org/,打开documentation可以看到原文。 强烈建议不熟悉Mockito的同学先看看我写的Mockito(一)入门篇和(二)实例篇之后再来看这篇文章。 因为只有看了前两篇文章才明白mockito的本质以及该如何使用它。 下面是按原文 翻译+注释 的对Mockito全部功能的介绍。 1, 使用mockito验证行为。 //首先要importMockito. import static org.mockito.Mockito.*; //mock creation List mockedList = mock(List.class); //using mock object mockedList.add("one"); mockedList.clear(); //验证add方法是否在前面被调用了一次,且参数为“one”。clear方法同样。 verify(mockedList).add("one"); verify(mockedList).clear(); //下面的验证会失败。因为没有调用过add("two")。 verify(mockedList).add("two"); 原文中的一句话很重要: Once created, mock will remember all interactions.

Redis集群的搭建

北城以北 提交于 2020-03-01 13:30:35
1、安装Redis 下载文件 http://download.redis.io/releases/redis-3.0.7.tar.gz 解压redis,tar xzvf redis-3.0.7.tar.gz 编译再安装 make ; make install 安装完毕后,用命令redis-server –version和redis-cli –version应能看到服务端和客户端已启动 1.1 安装ruby,因为我们使用redis的src目录下的redis-tri脚本帮助集群管理 yum install ruby ruby-devel rubygems rpm-build 如果报错说依赖ruby(abi) = 1.8和ruby-rdoc,则执行yum install ruby-rdoc和yum install ruby-libs 1.2 安装redis gem gem install redis 如果网络连接失败,则先下载 https://rubygems.global.ssl.fastly.net/gems/redis-3.0.7.gem 然后进入下载目录,手动安装gem install -l ./redis-3.0.7.gem 1.3 关闭防火墙 由于使用过程会涉及到很多端口的开放,最好关闭防火墙 使用命令service iptables stop或者systemctl stop

wifi测试相关(iwconfig,WPA Supplicant用法)

扶醉桌前 提交于 2020-03-01 09:58:50
iwconfig用法 1.打开无线网卡电源 iwconfig wlan0 txpower no 2.列出区域内的无线网络 iwconfig wlan0 scan 3.假设要连接到网络myhome(即essid为myhome的网络),那么输入命令 iwconfig wlan0 essid "myhome" 如果网络是加密的,密码是0123456789,那么就输入命令 iwconfig wlan0 essid "myhome" key 0123-4567-89 4 如果正常的话,输入 iwconfig wlan0 就可以看到连接正常的各项参数了。 5.启动无线网卡 ifconfig wlan0 up 6.如果是用DHCP获取IP的,那么用dhclient或dhcpcd获取ip dhclient wlan0 或 dhcpcd wlan0 7.现在无线网卡应该可以正常使用了。 WPA Supplicant WPA Supplicant 工具包可以让您连接到那些使用WPA的AP。因为还只是beta版,所以它的配置方法仍会常常变化——尽管如此,在大部分情况下它已经能很好的工作。 代码 2.1: 安装wpa_supplicant emerge net-wireless/wpa_supplicant 重要: 要让 wpa_supplicant 正常工作,您必须在内核中打开 CONFIG

最浪漫的程序员

天涯浪子 提交于 2020-01-07 17:08:04
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一直以来,程序员都给大家以高智商低情商,不懂得浪漫不会哄女生开心的形象 小优向大家征集了自己做过的最浪漫的事 以下作品出乎我的意料,简直是惊喜 有一直在全世界不停的找另一半的 有一见到漂亮女孩就忍不住给人家画个代码头像的 还有大胆表白的 三天不见面,就各种说“想你”的 一直说“I LOVE YOU”说到吐的 更会算好跟你在一起的每一天每一小时每一分每一秒 最后,还有用ALERT求婚的(话说你老板同意了吗?) 然而小优最服气的,是一个做H5的前端哥们 他早早看上同项目组的测试妹子,却一直不敢表白 终于有一天赶上大版本的发布 深夜大家都走了,只有他跟妹子不约而同的留到了最后 他修好最后一行代码,发测试链接给妹子 然后忐忑的坐立不安 1秒、2秒、3秒…… 1分、2分、3分…… 短暂而又漫长的10分钟过去了 手机嗡嗡嗡地震动起来 他长舒了一口气,打开微信 她发过来一张大大的H5页面性能测试结果 然后说 他犹豫片刻,终于勇敢的回复 这是小优听过的,最浪漫的爱情! 腾讯优测H5测试 兼容适配主流真机,分析页面核心性能 输入URL就能测,10分钟内出结果 #### 点击这里 ,快给你的H5也做个测试吧 更多精彩内容欢迎关注 腾讯优测 的微信公众账号: 腾讯优测 是专业的移动云测试平台,为应用、游戏