PHPUnit&Selenium----------(二)小试牛刀

3 篇文章 0 订阅
上一节说了在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

PHP: 5.4.6


一、准备工作
首先运行Selenium,大家把jar包下载后随便放在一个地方就可以了,具体如下图所示:

图1 运行命令


图2 日志信息


二、逻辑说明
我现在做的这个测试是我们APP的一个【积分兑换】功能的自动化测试。

主要分一下三个大的步骤:
1.用户进行积分兑换申请;
2.通过用户积分申请的审核;
3.核对汇款信息,进行汇款。

说一下我们的预置和后置条件
1.申请前用户积分的总数,用户冻结积分数
2.通过审核后用户积分总数,用户冻结积分数
3.汇款成功后用户积分总数,用户冻结积分数

三、操作实例
1.设置测试中用到的常量和单元测试前的初始化工作和资源释放工作
var $user_id;//用户ID
var $order_id;//订单号
var $op_id;//操作员ID
var $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 用例运行结果


五、结束语
因为我也是刚接触自动化测试,如果有不对的地方请包涵,欢迎大家一起讨论。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值