Tsung 介绍

一个开源的多协议分布式负载测试工具,使用erlang语言开发的。最大的亮点可以支持脚本录制,支持分布式的压测,生成优雅的报表

centos 下安装

安装Tsung依赖库

  1. yum -y install erlang perl perl-RRD-Simple.noarch perl-Log-Log4perl-RRDs.noarch gnuplot perl-Template-Toolkit firefox

下载Tsung

  1. 获取github上面Tsung最新版 git clone https://github.com/processone/tsung.git
  2. 拷贝到服务器 scp -P port -r tsung root@ip:/dir 修改成需要的命令

    安装tsung

    ./configure && make && make install

安装完成

tsung 被安装到 /usr/share/tsung/ 目录下
此目录下有很多示例 /usr/share/doc/tsung/examples

mac os 下安装

简单到哭 brew install tsung 一个命令即可
如果没有安装brew,运行 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
运行 tsung -f tsung.xml start

参考文章

  1. Load Testing using Tsung
  2. Tsung使用
  3. 官方指引 readthedocs
  4. tsung压测restful服务器
  5. 如何生成每秒百万级别的 HTTP 请求
  6. 源码安装erlang
  7. 压力测试工具tsung

测试图表格

/usr/lib/tsung/bin/tsung_stats.pl 运行此命令生成可视化数据
python -m SimpleHTTPServer 8000 开启简单的server服务
通过ip打开 查看数据

ps:

hostname 不能使用带有特殊字符的
每个机器之间要可以ssh 无密码访问,第一次使用需要ssh手动登陆下 否则可能会导致slave 无法正常启动

安装nvm

wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh

或者

wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh

安装nodejs

nvm install 5.1 5.1.x的稳定版本可以被安装,也可以换成其他稳定版

启用nodejs

nvm use 5.1 对应你安装的

安装 Hexo

npm install -g hexo-cli

初始化Hexo
hexo init <folder>
cd <folder>
npm install
当前目录结构应该为:
.
├── _config.yml
├── package.json
├── scaffolds
├── scripts
├── source
| ├── _drafts
| └── _posts
└── themes

配置_config.yml

注意:
1.修改配置文件时注意YAML语法,参数冒号:后一定要留空格
2.中文乱码请修改文件编码格式为UTF-8
deploy 配置
deploy:
type: git
repository: git@gitcafe.com:akuandev/akuandev.git
branch: gitcafe-pages
需要在gitcafe 创建和用户名相同的仓库

域名设置:

在gitcafe的项目设置中选择page服务
添加自定义域名

域名解析设置

我使用的是dnspod 域名cname到gitcafe.io 需要几分钟的时间生效

添加文章:
hexo new “title”
修改产生的markdown 文件
清楚缓存 hexo clean
生成文章信息 hexo g
部署 hexo d

ps:
问题1:nvm 重启失效 原因nodejs版本没有设置

查找node版本
➜ node –version
v5.1.0
设置默认版本
nvm alias default 5.1

hexo官方安装指引

在使用cocoapods 进行update 或者 install的时候 每次回去更新获取的pod specs,每次速度都不是很理想,博主最近对github上的specs仓库进行了镜像,分别在gitcafeoschina 现在每10分钟会进行一次同步 基本和主仓库保持一致

使用方法:

pod repo remove master
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod repo update

如果想用oschina的镜像也可以把第二条命令 换成 http://git.oschina.net/akuandev/Specs.git 即可

第二条命令执行的时候会比较耗时 这个时候要去把整个specs仓库clone一下 大概60M左右

如果你还没有使用过coacoapods 这里有一份安装的介绍 cocoapods 使用

如果不想在pod install pod update的时候不想升级specs库 可以使用参数忽略掉

pod install --verbose --no-repo-update
pod update --verbose --no-repo-update

由于pod 新版本更新 会导致重复clone 一份pod文件下来,解决方法 Podfile第一行加入 source ‘https://gitcafe.com/akuandev/Specs.git

RSA介绍
非对称加密 比较适合客户端进行密码的加密后提交给服务器 客户端使用公钥加密 客户端使用私钥解密

由于iOS原生没有对rsa的支持,但有对openssl的支持

在mac os x上使用命令生成公钥 私钥

`openssl req -x509 -out public_key.der -outform der -new -newkey rsa:1024 -keyout private_key.pem -days 3650`

中间会提示输入一些信息,随意写吧

在得到公钥私钥后还要进行一步转换 由于这样生成的私钥并非标准的 需要转换成pkcs8 否则服务器会无法使用私钥

`openssl pkcs8 -topk8 -in private_key.pem -out pkcs8_private.pem -nocrypt`

####客户端加密的过程

1.先用公钥加密
2.base64 编码
3.发送服务器

ps:我们服务器端使用的java 测试可用

证书的生成参考 cocoachina 这篇文章

客户端加密 使用了 github 开源的一个xrsa

I’m getting these warning messages

ld: warning: directory not found for option '-F"/Users/...."'

I look into it and found this cause by a bug of xcode 5 whene the user adding new files of folders to the project.

Xcode is modifying the ‘Library Search Paths’ build setting, and making a god-awful mess of it. Instead of adding $(SRCROOT)/ it is adding fully rooted paths to all new items, and adding random amounts of /// into other elements of the string. It also seems to be duplicating source paths in some instances, probably because it’s broken the existing ones, and thinks they need adding again.

The solution:

  1. Copy out your Library Search Paths string into a text editor.
  2. Remove any fully rooted paths that shouldn’t be there, and replace them with the usual $(SRCROOT)/MyFiles/ type paths.
  3. Remove all extraneous slashes and make sure each path has a “ character at beginning and end to protect against spaces in filenames.
  4. Paste the edited string back into Build Settings.
  5. Clean, then Build. Should be back to normal.

hope to help you!

####source:stackoverflow

CocoaPods is a tool for managing dependecies for iOS and Mac OS X projects.

Getting started with using CocoaPods is easy. The tricky part is getting used to opening Xcode workspace (eg. App.xcworkspace) instead of Xocde project. But that’s not what I want to covered in this post.

One of the hurdle I encountered is getting unit testing to work after CocoaPods is setup.
Apparently, after you setup CocoaPods, it automatically configures your project’s main target to use the pods (dependecies). However, it does not configure the same for your unit tests target. So when you run your unit test, you will likely encounter errors like this:

SomeLibrary.h not found

To fix, go to Project > Info > Configurations > change

Based on Configuration File to Pods. Like this: