CodeCeption -- 初探

一、介绍




总体来说是一个现代的PHP测试框架。他是由COMPOSER来进行架构组织。


二、安装下载

下载CodeCeption

下载一个PHP执行器,推荐XAMPP

下载selenium-server

如果是源码安装,还需要安装composer

下载CodeCeption后,可以通过

$phar = new Phar('codecept.phar',0,'codecept.phar');
$zip = $phar->convertToData(Phar::ZIP); 

对该包进行解压。解压可见源码。同样的github上有最新的源码和文档。


下载(解压)好源码之后,可以通过

php codecept.phar bootstrap
来进行初始化。初始化后会出现一个test的文件夹。其中包含了_data,_output,_support,acceptance,functional,unit等文件夹。其中包含了数据,输出,支持,web测试,功能测试以及单元测试等

如果是源码安装

php codecept build
来构建整个工程,下载相应的依赖文件

然后就可以进行测试了

php codecept.phar generate:cept acceptance Welcome


三、原理


1.Composer


        Composer是一个现代的PHP包管理器。类似于Node的npm。整个CodeCeption是由这个Composer来进行组织的。在composer.json里面,有该项目的要求,依赖文件以及动态加载的类等关键因素

Composer会根据里面的require项目去寻找相应的包(你可以在 https://packagist.org/ 上下载到各种 composer 包,类似于 yum、npm或者gem)。下载完composer之后,根据包加载的方式不同,会在四个文件中出现相应的映射关系,然后composer里面的

autoloader会加载这些映射关系,找到相应的类文件,从而达到组织整个系统的目的。

其中autoload_psr4,namespaces,files,classmap就是composer的命名空间,类与文件的对应关系。

autoload_real就是实现加载了自动加载类的方式。

部分autoload_real的代码:

$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
$loader->set($namespace, $path);
}

$map = require __DIR__ . '/autoload_psr4.php';
foreach ($map as $namespace => $path) {
$loader->setPsr4($namespace, $path);
}

$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}

$loader->register(true);

$includeFiles = require __DIR__ . '/autoload_files.php';
同时,在composer.json中有

 "autoload":{
        "psr-0":{
            "Codeception":"src"
        }
    },

注:psr-0表示自动加载标准

1. PSR-0 (Autoloading Standard) 自动加载标准

2. PSR-1 (Basic Coding Standard) 基础编码标准

3. PSR-2 (Coding Style Guide) 编码风格向导

4. PSR-3 (Logger Interface) 日志接口

5. PSR-4 (Improved Autoloading) 自动加载优化标准


这样的设置。表示Codeception的命名空间对应的文件位置。如果是新添加的话,可以通过composer update进行设置。最终的结果是autoload_namespaces.php中出现

'Codeception' => array($baseDir . '/src'),
从而实现了关系映射,而不用每次都要include

 

总之,composer组织了CodeCeption。从而方便的引入各个库,比如我们接下来要用到webdriver


2.webdriver


      webdriver是selenium的一部分WebDriver is a tool for writing automated tests of websites. It aims to mimic the behaviour of a real user, and as such interacts with the HTML of the application.

      我们执行一个web测试的流程是

从代码层面看,我们主要是启动了selenium服务器,然后对浏览器进行各种操作。

codeception利用composer加载进来了facebook的webdriver,然后利用module里面的webdriver进行封装,从而达到了操作webdriver的目的。


3.选择器


    主要有三种选择器:

      css选择器

      XPath选择器

      Dom选择器

       一旦我们获取到页面之后,就可以对页面元素进行筛选,而筛选的依据,就是这三种选择器。他们均调用了

    

       $I->click('//*[@id="post_det_top"]/a'); Xpath

       $I->SeeElement('input',['id' => 'loginUserPwd']); dom

       $I->SeeElement('#loginUserPwd']);CSS

       可以通过对源码或者例子对选择器进行了解




    




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值