PHPUnit&Selenium----------(二)小试牛刀
来源:互联网 发布:英文软件界面翻译工具 编辑:程序博客网 时间:2024/06/06 20:23
上一节说了在Ubuntu安装PHPUnit和Selenium,这一节中我们正式开始小试牛刀,看看这个效怎么样o(∩∩)o...
题外话
先说一下我当前的环境
OS: Ubuntu 12.10
PHPUnit: 3.7.21
Selenium: selenium-server-standalone-2.33.0
Java: 1.7.0_15
首先运行Selenium,大家把jar包下载后随便放在一个地方就可以了,具体如下图所示:
图1 运行命令
我现在做的这个测试是我们APP的一个【积分兑换】功能的自动化测试。
主要分一下三个大的步骤:
1.用户进行积分兑换申请;
2.通过用户积分申请的审核;
3.核对汇款信息,进行汇款。
说一下我们的预置和后置条件
1.申请前用户积分的总数,用户冻结积分数
2.通过审核后用户积分总数,用户冻结积分数
3.汇款成功后用户积分总数,用户冻结积分数
三、操作实例
1.设置测试中用到的常量和单元测试前的初始化工作和资源释放工作
注:中间有一些获取必要信息的方法,可能设置敏感信息,所以就不贴代码啦!
五、结束语
因为我也是刚接触自动化测试,如果有不对的地方请包涵,欢迎大家一起讨论。
题外话
先说一下我当前的环境
OS: Ubuntu 12.10
PHPUnit: 3.7.21
Selenium: selenium-server-standalone-2.33.0
Java: 1.7.0_15
PHP: 5.4.6
首先运行Selenium,大家把jar包下载后随便放在一个地方就可以了,具体如下图所示:
图1 运行命令
图2 日志信息
我现在做的这个测试是我们APP的一个【积分兑换】功能的自动化测试。
主要分一下三个大的步骤:
1.用户进行积分兑换申请;
2.通过用户积分申请的审核;
3.核对汇款信息,进行汇款。
说一下我们的预置和后置条件
1.申请前用户积分的总数,用户冻结积分数
2.通过审核后用户积分总数,用户冻结积分数
3.汇款成功后用户积分总数,用户冻结积分数
三、操作实例
1.设置测试中用到的常量和单元测试前的初始化工作和资源释放工作
var $user_id;//用户IDvar $order_id;//订单号var $op_id;//操作员IDvar $exchange_grade;//兑换积分数 /*** @description 每个单元测试前初始化*/public function setUp(){ $this->setBrowser('firefox'); $this->setBrowserUrl('http://www.baidu.com'); $this->user_id = 100166; $this->op_id = 11; $this->exchange_grade = 100;}/*** @description 每个单元测试运行后资源释放工作*/public function tearDown(){ unset($this->user_id); unset($this->order_id); unset($this->op_id); unset($this->exchange_grade);}
2.根据积分兑换的三个步骤设置3个testCase
/** * 测试用例:积分申请 * 预置状态 * 1.用户积分总数不变,冻结积分数不变 * 执行操作 * 积分申请 * 预期结果 * 1.用户积分总数不变,冻结积分数增加 * 2.生成订单信息 */ public function testApply() { //提取预置数据 $preReturnJson = $this->getResultJson(); $preScoreJson = json_decode($preReturnJson); $this->assertEquals($preScoreJson->code,0); echo "预置用户".$this->user_id."积分读取成功。预置总积分值为:".$preScoreJson->user_info->grade_num.",预置冻结积分值为:".$preScoreJson->user_info->freeze_grade_value."\r\n"; //执行操作 $apply_exchange_json = '{"op_type":"1023","ver":"1111","user_id":"'.$this->user_id.'","task_id":"12","c_type":"1","card_num":"1367494852","bank_name":"%E5%BB%BA%E8%A1%8C","card_holder":"sdfsfsfd","exchange_grade":"'.$this->exchange_grade.'","exchange_rmb":100,"sid":"ipengsid"}'; echo "socre_exchange_api_1023:".$apply_exchange_json."\r\n"; $applyReturnJson = $this->getResultString($apply_exchange_json); $applyScoreJson = json_decode($applyReturnJson); $this->assertEquals($applyScoreJson->code,0); echo "用户".$this->user_id."申请积分兑换成功"."\r\n"; } /** * 测试用例:订单审核通过 * 预置状态 * 1.用户积分总数不变,冻结积分数不变 * 2.订单审核状态不变,为未审核状态 * 执行操作 * 通过审核 * 预期结果 * 1.用户积分总数不变,冻结积分数不变 * 2.订单审核状态改变,为已审核状态 */ public function testCheck() { //读取申请成功后用户数据 $preReturnJson = $this->getResultJson(); $preScoreJson = json_decode($preReturnJson); $this->assertEquals($preScoreJson->code,0); echo "预置用户".$this->user_id."积分读取成功。预置总积分值为:".$preScoreJson->user_info->grade_num.",预置冻结积分值为:".$preScoreJson->user_info->freeze_grade_value."\r\n"; $order_info = $this->getOrderIdByUid(1); $this->order_id = $order_info[0]; echo "订单数据读取成功,Order_id为:" . $this->order_id . "\r\n"; $check_pass = $this->checkOrderInfo(); $this->assertEquals($check_pass, 1); echo "订单" . $this->order_id . "通过审核\r\n"; } /** * 测试用例:订单汇款 * 预置状态 * 1.用户积分总数不变,冻结积分数不变 * 2.订单审核状态不变,为等待汇款状态 * 执行操作 * 订单汇款 * 预期结果 * 1.用户积分总数减少,冻结积分数减少 * 2.订单审核状态改变,为已汇款状态 */ public function testRemit() { $order_info = $this->getOrderIdByUid(2); $_order_id = $order_info[0]; $_op_id = $this->op_id; $_exchange_grade = $this->exchange_grade; $pass_input_json = '{"op_type":"1030","ver":"","user_id":"' . $this->user_id . '","task_id":"","c_type":"0","exchange_grade":"'.$_exchange_grade.'","exchange_result":"0","op_id":"'.$_op_id.'","order_id":"'.$_order_id.'","state":"4"}'; echo "remit_api_1030:" . $pass_input_json . "\r\n"; $pass_return_json = $this->getResultString($pass_input_json); $pass_info = json_decode($pass_return_json); $this->assertEquals($pass_info->code, 4); echo "后置用户" . $this->user_id . "积分兑换成功,兑换积分为" . $order_info[2] . "\r\n"; $afterReturnJson = '{"op_type":"1029","user_id":"' . $this->user_id . '","auth_key":"e10adc3949ba59abbe56e057f20f883e"}'; $afterScoreJson = json_decode($this->getResultString($afterReturnJson)); $this->assertEquals($afterScoreJson->code, 0); echo "后置用户" . $this->user_id . "积分读取成功。后置总积分值为:" . $afterScoreJson->user_info->grade_num . ",后置冻结积分值为:" . $afterScoreJson->user_info->freeze_grade_value . "\r\n"; }
注:中间有一些获取必要信息的方法,可能设置敏感信息,所以就不贴代码啦!
四、运行测试用例
运行过程中,浏览器(PS:我用的Firefox)会闪现好多次,其实整个过程也就是模拟用户操作的一个过程。具体结果如下图:图3 用例运行结果
五、结束语
因为我也是刚接触自动化测试,如果有不对的地方请包涵,欢迎大家一起讨论。
- PHPUnit&Selenium----------(二)小试牛刀
- PHPUnit&Selenium----------(一)安装
- phpunit - selenium
- phpunit selenium 操作html
- phpunit+selenium环境搭建
- PHPunit 中phpunit selenium 扩展的安装
- PHPUnit学习笔记(二)PHPUnit基本用法
- Selenium命令(二)
- Selenium学习---(二)
- selenium常见问题(二)
- selenium自动化(二)
- 安装配置pear、phpunit、Selenium(netbeans下开发yii框架项目)
- 安装配置pear、phpunit、Selenium(netbeans下开发yii框架项目)
- netbeans的PHPUnit 和 Selenium 测试配置问题(已解决)
- 在XAMPP环境下安装PHPUnit+Selenium
- 使用 PHPUnit 和 Selenium 进行测试
- centos linux安装PHPUnit 配置PHPUnit (深入浅出PHPUnit 1)
- PHPUnit从零开始(2):编写 PHPUnit 测试
- 不标准分辨率的适配,S4与Sonyl36h。
- NFC学习——NFC Enable 过程分析(一)
- Linux常见问题归类
- Kinect安装与配置(openNI2)
- Activity的几种跳转及传值方式详解
- PHPUnit&Selenium----------(二)小试牛刀
- configure: error: C++ compiler cannot create executables
- linphone源码分析----初始化部分
- MySQL 查询结果以百分比显示
- android listview 三种适配器设置
- Android程序调试技术-----很全很强大
- linux signal 处理
- fatal error: zlib.h & lzma.h : No such file or directory
- Android利用ViewFlipper实现屏幕切换动画效果