appium简单总结(一)

从最早做过一些instrumentation的android 白盒测试后,熟悉过一些robotium , monkeyrunner自动化后, 一直对android自动化没有再关注。这些日子抽空研究了下appium。 更多…

linux shell脚本 发送multipart格式邮件

sendmail 发送multipart格式邮件,例如发送html格式,有附件等。

分享国外某位的写的,很早一直在用(发送html格式邮件),不过抱歉忘了是哪位写的了。

更多…

ajax multipart post请求不同content-type实现

ajax multipart post请求不同content-type实现

更多…

iphone 在线安装测试应用(OTA)

1. 首先我们先编译打包ipa和生成plist文件。

打包方法:
选择 Build –> Build and Archive

打开Organizer window (Window –> Organizer) 然后选择 “Archived Applications”

选择你构建的文件然后选择”Share Application”

点击 “Distribute for Enterprise” 和选择正确的 provisioning profile.

然后选择ok。

2. 然后我们自己搭建一个web服务器,有一个页面。
超链接的链接为 itms-services://?action=download-manifest&url=https://url-to-plist.plist

url=https://url-toplist.plist 必须要用https , 且iphone,ipad必须要安装该https服务的证书(如果我们是在内网,且是自签明的证书)
plist定义了下载ipa的地址,可达即可。

此时我们用手机点击itms-services://?action=download-manifest&url=https://url-to-plist.plist 这个链接, 则会下载 plist文件, 验证此https服务的证书是否合法有效(合法的前提,本身证书是证书机构颁布的,或者是自签名的证书,前提我们已安装证书)。 然后就会解析plist文件,下载ipa文件,并安装。

php $_POST 为空的奇怪问题

php处理multipart/form-data 时,$_POST值为空的奇怪问题。

今日在公司写一个上传文件的页面,发现了此问题。 非常奇怪, 暂且原因。 回家一试没有任何问题, 可能和php的版本有关。

家里的php版本

测试代码非常简单如下
更多…

计算机证书相关知识总结

我们不是谈 毕业证书这种证书。 说的是计算机里的证书概念。 对于大多数计算机工作的同学想必对这个术语肯定是不陌生的,但并不是所有人会亲自使用,大部分可能是被动的用到了。 证书 certificate 是 TLS(transport layer security) 里一个重要的组成部分(模块), 大多数我们过去经常称为  SSL . 这个也许你就不陌生了。 顾名思义, 这个是和安全相关的。

谈到证书,免不了要简单说下 key (钥匙)。  证书是用来证明, 而为了传输数据的安全, key也是必不可缺的部分。 下面我们来看看, 证书(简写为cert)和钥匙是如何配合来保证传输数据的安全的。

一TLS(SSL)工作机制

  1. 例如我们访问一个网站通常是https(https://).
  2. 网站发来公钥和它的证书 (稍后我们来讲如何生成钥匙和证书)
  3. 我们的浏览器确认这个证书是否是被三方可信的机构签证的证书,如果是有效且可信的,浏览器会认为是安全的。否则会提示你不安全的链接。
  4. 这时候浏览器收到了公钥, 然后用公钥加密一个随机的对称钥匙串,和加密后的url地址和http请求数据发送给服务器。
  5. 服务器收到了加密的一个钥匙串(上一步客户端浏览器随机生成的)。这时候可以解密(通过私钥解密)拿到客户端随机生成的密钥(对称密钥)。并用此密钥解密http请求并拿到http请求数据。
  6. 此时服务器处理此客户端的请求,然后将处理结果用密钥(还是随机生成的密钥)加密后,发送给客户端的浏览器。
  7. 浏览器解密数据,并展现。

更多…

自动化编译iphoneos app

xcodebuild 是支持命令行编译iphoneos app的。 但是却没有想象中的那么容易,因为路上被 signcode给拦住了。

User interaction is not allowed. Command /usr/bin/codesign failed with exit code 1

究竟是什么原因?

google一下,都说是keychain的问题。 因为对ios 没有一点经验,以为keychain 是什么 证书链。 英语不好害死人, 直译起来就是密钥串。 这个东西到底是什么,真是把我给弄糊涂了。

这里是keychain的wiki百科。 https://en.wikipedia.org/wiki/Keychain_(software)

原来它就只是个苹果公司开发的 os x密码管理系统。 因为对安全性太高, 过一段时间就会加锁。 即,你不输入keychain的密码解锁,你就不能执行一些应用程序。这样应用程序没有得到授权就不能执行。

这里因为没有解锁,所以codesign 就需要你输入 keychain(一般默认是 login.keychain) 的密码来unlock(解锁), 但是codesign又不支持 用户交互,让你输入密码。 我擦,这不是逗人玩么。 命令行也不支持和用户交互,这也太弱智了吧。 还是说我们ds 们还是对apple 的 os x 显的低智商了? 更多…

nginx multiple server block in same port

花了半个晚上的时间终于把apache http server 迁移至 nginx + php-fpm.

nginx 一个端口多个server配置的实现。

测试nginx版本: 1.6.3  说在前面的话,因为没有编译最新的nginx,所以如下所陈述的方法很可能在新版本上不正常。 另外,所提到的问题,也可能已经修复。 (因为编译需要依赖一些其他的devl 包,所以为了节省时间快速迁移,直接yum 安装了所有需要的包)

更多…

webdriver在firefox中执行功能测试

Jmeter中使用webdriver sampler 在firefox中执行自动化测试时,提示如下类似错误。

 

google了一番, 此类问题大概是由于 firefox的版本与selenium-firefox-driver 的版本不兼容导致。
所以升级selenium-firefox-driver 到最新版本,重启jmeter进行运行,此问题修复。

selenium-firefox-driver 下载地址 http://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-firefox-driver/2.49.0

android gradle 编译aapt finished with non- zero exit value 1错误解决

./gradlew build 时报错

错误类似如下:

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:  Process ‘command ‘C:\Users\Vishnu Ruhela\AppData\Local\Android\sdk\build-tools\21.1.2\aapt.exe” finished with non- zero exit value 1

1. 获取更详细的错误日志

2.   redhat 系统安装 libstdc++

安装后重新build,问题解决。