Jira+Confluence集成环境的搭建(敏捷Agile)

       公司准备实行敏捷开发,经过一番工具选择,最终选定了jira和confluence,jira用作项目管理,confluence用于文档管理,下面说说这两个系统的搭建过程和集成设置。 一、软硬件准备 1  jira7.2.6软件       官网下载地址  https://downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-7.2.6.tar.gz     备用下载地址  https://peloo.net/download/jira/atlassian-jira-software-7.2.6.tar.gz 2  jdk1.8.0_112  下载页面  http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html     备用下载地址  https://peloo.net/download/jdk/jdk-8u112-linux-x64.tar.gz 3  confluence5.10.8       官网下载地址  https://downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-5.10.8.tar.gz     备用下载地址  https://peloo.net/download/jira/atlassian-confluence-5.10.8.tar.gz 4  mysql-server 5.6.34  下载地址   http://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.34.tar.gz 5  mysql-connector jar包       MySQL官网下载地址  http://120.52.72.23/cdn.mysql.com/c3pr90ntc0td//Downloads/Connector-J/mysql-connector-java-5.1.40.tar.gz     备用下载地址  https://peloo.net/download/db/mysql-connector-java-5.1.40.tar.gz 6  操作系统  CentOS6.X 7  服务器两台,强烈建议独立物理机,本人的服务器ip地址分别为172.25.0.105和172.25.0.107,分别部署jira和confluence 二、基础环境搭建 1  Java环境安装与配置…

Continue Reading

fiddler导出会话并生成curl脚本

最近研究fiddler菜单无意中发现,居然可以导出会话并生成curl脚本,curl脚本可以在Linux下执行,对远程定位接口问题很有帮助。   在fiddler界面,依次点击edit–export sessions–selected sessions,选择curl即可,     导出的内容如下, curl -k -i –raw -o 0.dat -X POST -d "username=123456&password=123456&oauth_token=bbffb757381df45f118a2c286ac01abb31a01fa16acd6f3df6b640a373aa5db03acce5cfb5443ad9a516c1b8e3ab8c49&denyCallbackURL=http%%3A%%2F%%2Fwww.yy.com%%2Flogin%%2FudbCallback%%3Fcancel%%3D1&UIStyle=xelogin&appid=5719&mxc=&vk=&isRemMe=0&mmc=&vv=" "https://lgn.yy.com/lgn/oauth/x2/s/login_asyn.do" -H "Host: lgn.yy.com" -H "Connection: keep-alive" -H "Accept: */*" -H "Origin: https://lgn.yy.com" -H "X-Requested-With: XMLHttpRequest" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" -H "Referer: https://lgn.yy.com/lgn/oauth/authorize.do?oauth_token=bbffb757381df45f118a2c286ac01abb31a01fa16acd6f3df6b640a373aa5db03acce5cfb5443ad9a516c1b8e3ab8c49&denyCallbackURL=http://www.yy.com/login/udbCallback?cancel=1&cssid=5719&regCallbackURL=/login/udbCallback&UIStyle=xelogin&rdm=0.5864189190174589" -H…

Continue Reading

使用Fiddler模拟重复提交

       对于多数网站后端处理来说,重复提交的问题很常见,程序员也经常忽略或懒得修改重复提交的问题。但是对于关键业务来说,解决重复提交的问题就非常有必要。去年公司的Java服务因为没有做并发控制,导致30万元左右的财务损失,虽然只追究了开发人员的责任,但是作为测试人员,着实为自己的水平低下蒙羞。        下面我们说说如何用fiddler工具模拟重复提交。         我们就以登录yy网站为例子 下图是我设置浏览器使用fiddler代理后抓到的yy登录的会话   图中可以看出,数据包到达的目的主机是lgn.yy.com 1  先在fiddler界面按“alt + q”键输入“bpu lgn.yy.com”截断发往此主机的数据包,Ctrl + a 全选会话并删除   2  在yy登录界面输入用户名和密码点击确定   3  此时fiddler界面出现一个被拦截的红色标记的会话,选中此会话,按键盘“shift + r”键,输入要复制的会话数,例如9个,全选这十个会话再点击“GO”放行数据包到服务器,即可重复发包。         很显然,yy网站对重复提交做了控制。 这里只是10次重复提交,如果这个业务是送积分或代金券的,一次提交成千上万次,结果可想而知。 笔者就遇到过这种重复提交的漏洞,结果一般是数据库产生多条重复的数据,而且用fiddler可以直接绕过前端,直接对后端进行攻击。  

Continue Reading

Jenkins之SSH发布插件脚本编写的大坑

使用Jenkins自动构建环境已经有段时间了,其中一个大坑足足绊脚了一个多月。 事情是这样的,目前在做的项目是个电商网站,用的是node.js,Jenkins服务器已设置和node.js服务器的ssh免密码登录,并且已经建立了自动构建的Jenkins工程,通过ssh插件远程执行node.js服务器上的shell脚本来完成发布,部分配置如下图,   脚本的主要动作有三个:     1  停止相关node.js进程     2  部署node工程     3  重启停止的node进程   然而问题来了,此脚本在node.js服务器上shell控制台运行完全正常,相关node.js进程可以正常stop和start,但是Jenkins上运行构建后,最后一步的node.js的启动失败,netstat -nltp 查看对应端口根本未打开。   尝试1:设置Jenkins内置变量BUILD_ID=dontkillme,运行依然失败 尝试2:上图中“exec command”设置为bash启动,也就是bash /home/www-data/TEST_MAS_jenkins/mas_jenkins_deploy.sh,运行后依然无法启动node.js进程   就这样一直僵了一个多月,一直找不到办法。   有一天突然跟架构师商量此事,无意间在脚本中加入了一行,仅仅一行,就搞定了。 原来Jenkins远程调用node.js服务器脚本的时候,环境变量出问题了,脚本中启动node.js的命令可能需要其他库的路径,但是通过Jenkins调用却未获得。 解决办法:在脚本中加入一行source /etc/profile即可同步环境变量   至此,测试环境真正实现自动化构建和部署。

Continue Reading

版本发布历史总结

      目前在职软件测试,做的是一电商项目,此文是对各个版本发布的总结,以做备忘。   #  2016-04-19  版本发布总结 1  高仿环境数据库必须和测试环境数据库分离,单独部署一台数据库,模拟正式环境,版本更新的数据库变更由数据库管理员完成,避免上线后数据字段的缺少。 2  了解新旧版本的差异,切实为用户考虑,做好平滑过渡,如商家后台和平台后台登录网址的友好跳转。 3  使用持续集成测试工具Jenkins,灵活发布并自动部署JAVA和MAS工程,并且结合SVN提交日志,保证文件更新的正确性和提前把控影响重大功能的文件,例如控制订单类的Java文件。 4  发布前须确认哪些功能上,哪些功能不上,这样才会在部署工程的时候不会因冗余和遗漏带来严重后果。   #  2016-07-27  版本发布总结 ——–  成功之处 1  上线前严格把控代码更新,对每个更新及更新涉及到的模块仔细验证; 2  高仿环境数据库和测试环境数据库分离,做到在程序和数据均高度模拟真实环境; 3  测试环境使用Jenkins自动构建,大大缩短了软件迭代的时间; 4  测试环境迭代完成后,积极组织开发部门相关同事展开高仿环境部署注意事项,明确各成员分工,预演正式环境发布过程; 5  主营业务燃气优化在上线前经过详细的测试方案和测试用例的设计与评审,因而在上线后未出现计划内的严重问题。   ——–  失败之处 1  上线后APP广告位出现严重BUG,此功能运营部门经常用到,但是上线前未重视,解决方法是上线前对各业务部门经常用到的模块加强质量保证; 2  高仿环境采用手动更新和部署,期间出错若干次,并且对多个BUG的更新也不利,以后须建立高仿环境的自动更新和部署机制; 3  主营燃气业务需求未做到深入调查,在上线几天后出现严重业务BUG,所以在以后的测试中对业务需求的沟通和了解要想办法深度挖掘; 4  数据库的更新在历次版本发布中均拖后腿,JAVA和MAS工程部署简单,但是前提是数据库得到正常切换后才能部署JAVA和MAS工程,后期配合DBA一起优化这个过程。   #  2016-08-31 版本发布总结 ——–  成功之处 1  各成员分工明确,不存在交叉任务,秩序统一; 2  产品需求评审比较详细,确保在产品设计源头的合理性; 3  制定详细的高仿环境部署策略,为正式环境部署做好了预演和错误尝试。  …

Continue Reading

软件测试的经验教训

1 测试要推断,不只是输出和预期结果的比较。 2 不经意间忽略的bug有可能成为以后的重大问题爆发。 3 不容易被发现的bug:1)测试步骤较为繁琐的功能 2)需要长时间测试的场景。 4 你验证过的没问题的模块并且十分确信不会出问题,结果在验证相关问题时确认真的出问题了。 5 连续点击按钮赠送了双倍慧购卡, 导致公司损失了一倍的钱,未注意重复提交的问题。 6 应该着重考虑下数据的输入异常,情况很多,对程序运行的影响不是一般的大。 7 有时候你觉得你已经掌握了全局,却没想到被一粒沙子(BUG)模糊了前进的视线  

Continue Reading

WEB测试常见问题

1 tab键合enter键等键盘操作的易用性 2 图片显示和链接 3 重复提交问题的预防(http传输情况下可抓包重复提交http请求验证) 4 输入判断处理字符长度判断空格问题,如果去掉字符串前后空格,则需要整个系统应用此策略,不然会造成数据传递不一致的问题前后台均需要做输入字符的判断多个不同浏览器登录相同账号操作的数据一致性问题以及多个浏览器使用不同用户操作的cookie混乱问题输入特殊字符进行验证预防方法:开发公共字符处理模块,在系统中规范应用 5 安全问题URL中不要明文显示敏感信息即使要传递密码参数也不要使用pwd、password类似的参数名称进行传递,防止被截获在传递参数时使用noCache参数,防止将URL缓存预防方法:建立标准的数据传输和命名规范,并制作一些网页开发模板或规范参考 6 防止SQL注入 7 关于cookiecookie未设定过期时间cookie未加密浏览器不支持cookie未做提示预防方法:明确cookie生存期,并对生成的cookie进行检查,建立标准的浏览器对cookie支持的检查函数 8 页面显示不同分辨率下的页面显示问题弹出框数据过多未做滚动条下拉的问题 9 浏览器兼容性问题主流浏览器如下:chromeIE6-11firefox360浏览器搜狗浏览器 10 前进和后退问题浏览器页面的前进后退有可能导致数据重复提交或其它问题,需要特别注意预防方法:制定标准策略防止页面前进和后退导致的数据问题,共享整个项目开发 11 页面提示语言、js提示语言、程序提示语言风格不一致问题预防方法:产品和开发尽可能制定大而全的提示语言规范并应用到软件开发中去 12 文本缩略和折行输入框提交长字符且不换行,可能导致页面展示问题若需要将字符后面一部分做省略号处理时,注意不要将中文截成半个字符 13 系统上线log配置— 上线后要关闭大量无用log调试信息— 不要打开过多的log预防方法:系统管理员对所有打开log级别进行确认,并群发相关人员 14 用户易用性— 确认删除提示时建议焦点放在“否”上— enter键提交数据,增强易用性

Continue Reading

(转)powershell与shell处理字符串对比

转自:http://blog.chinaunix.net/uid-9781829-id-1997702.html 1. 我们来看Shell中求字符串长度的例子: %x=”abcd” #方法一 %expr length $x 4 # 方法二 %echo ${#x} 4 # 方法三 %expr “$x” : “.*” 4 我们需要这么多种办法嘛??我觉得一种就够了. PowerShell中, 调用字符串长度的属性就可以返回字符串长度了, 如下: PS C:\> “abcd” abcd PS C:\> “abcd”.length 4 PowerShell看起来是不是更加的清楚呢? 2. 我们接下来看看shell中 查找子串: %expr index $x “a” 1 %expr index $x “bc” 2 %expr index $x “cd” 3 expr返回的数组下标是从1开始计数的. 看看PowerShell怎么应付呢? PS…

Continue Reading

匿名FTP服务器自定义目录可写入配置

网上很多匿名FTP配置的教程都是基于vsftpd系统安装目录/var/ftp,但是实际应用中我们需要设置的目录很多情况下不是这个目录,经过自己的琢磨,来看看自定义目录的匿名可写入配置。 一、系统安全放行配置 (1)开放21端口 # service iptables stop //关闭iptables # iptables -A INPUT -p tcp –dport 21 -j ACCEPT (2)防火墙配置VSFTPD 被动端口开放: # iptables -A INPUT -p tcp –dport 30000:30100 -j ACCEPT //端口30000-30100只是举例,可以根据实际情况自定义 # service iptables save //保存iptables配置 # service iptables restart //重启防火墙 (3)SELINUX永久开启FTP支持 # setsebool -P ftp_home_dir on # setsebool -P allow_ftpd_full_access on # setsebool -P…

Continue Reading

tcpdump抓包命令详解

TCPdump抓包命令 tcpdump是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。 tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的Linux系统 中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工 具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。 一、概述 顾名思义,tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 引用 # tcpdump -vv tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 11:53:21.444591 IP (tos 0x10, ttl 64, id 19324, offset 0, flags [DF], proto 6, length: 92) asptest.localdomain.ssh > 192.168.228.244.1858: P 3962132600:3962132652(52) ack 2726525936 win 1266 asptest.localdomain.1077 > 192.168.228.153.domain: [bad udp cksum 166e!] 325+…

Continue Reading