以登录为例创建一个验收测试,名为IndexPage

打开文件里的的代码是

<?php
use tests\codeception\frontend\AcceptanceTester;
$I = new AcceptanceTester($scenario);
$I->wantTo('perform actions and see result');

文件创建成功了,接下来我们要想一下登陆的流程
1.访问登陆页面
2.填写登陆信息
3.点击登陆按钮
既然是验收测试,那我们测试的数据肯定不止一种情况,并且页面上应该返回错误提示,才算正确
1.什么都不填,直接提交,页面上应该提示不能为空
2.填写错误的信息,提交,页面上应该提示,用户名或密码不正确
3.填写正确的信息,提交,跳转至能明显看出用户是已登录状态的页面

访问登陆页面,假设我们的登陆地址是http://login.test.com,我们找到对应的suite.yml文件,
每种actor都对应一个suite.yml文件,在tests/codeception/frontend下有一个名为acceptance.suite.yml的文件,这个文件就是验收测试的配置文件,我们更改url

# Codeception Test Suite Configuration# suite for acceptance tests.
# perform tests in browser using the Selenium-like tools.
# powered by Mink (http://mink.behat.org).
# (tip: that's what your customer will see).
# (tip: test your ajax and javascript by one of Mink drivers).# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES.class_name: AcceptanceTester
modules:enabled:-PhpBrowser-tests\codeception\common\_support\FixtureHelper
# you can use WebDriver instead of PhpBrowser to test javascript and ajax.
# This will require you to install selenium. See http://codeception.com/docs/04-AcceptanceTests#Selenium
# "restart" option is used by the WebDriver to start each time per test-file new session and cookies,
# it is useful if you want to login in your app in each test.
#        - WebDriverconfig:PhpBrowser:
# PLEASE ADJUST IT TO THE ACTUAL ENTRY POINT WITHOUT PATH INFOurl: http://login.test.com
#        WebDriver:
#            url: http://localhost:8080
#            browser: firefox
#            restart: true

配置好了登陆地址,我们就可以开始写代码了

$I = new AcceptanceTester($scenario);
$I->wantTo('perform actions and see result');
$I->amOnPage('/');
$I->see('登录'); //找到登录两个字,说明访问的登陆地址是正确的

测试第一种情况,什么都不填

$I->amGoingTo('submit login form with no data');
$I->fillField('input[name="LoginForm[t_email]"]', '');
$I->fillField('input[name="LoginForm[t_password]"]', '');
$I->click('登录');//点击登录按钮
$I->expectTo('see validations errors');
$I->see('用户名不能为空。', '.help-block');//希望看到用户名的错误提示
$I->see('密码不能为空。', '.help-block');//希望看到密码的错误提示

第二种情况,填写错误的登陆信息

$I->amGoingTo('try to login with wrong credentials');
$I->fillField('input[name="LoginForm[t_email]"]', 'admin');
$I->fillField('input[name="LoginForm[t_password]"]', 'wrong');
$I->click('登录');//点击登录按钮
$I->expectTo('see validations errors');
$I->see('用户名或密码不正确。', '.help-block');//希望看到的错误提示

第三种情况,填写正确的信息

$I->amGoingTo('try to login with correct credentials');
$I->fillField('input[name="LoginForm[t_email]"]', 'info@aim-china.com');
$I->fillField('input[name="LoginForm[t_password]"]', '888888');
$I->click('登录');
$I->expectTo('see that user is logged');
$I->seeLink('退出');//希望看到退出链接
$I->dontSeeLink('登录');//不希望看到登录链接

运行测试

全部运行成功,在测试中,只要有一个断言不成功,就会显示失败,

在执行测试的时候,可以生成报告
将运行结果以xml的形式保存下来,黄字的部分就是xml的位置
codecept run acceptance IndexPageCept --xml --html

生成的报告会在tests/codeception/frontend/_output下

执行下面这句可以知道更多codeception的指令

codecept help run

参考文章:http://blog.csdn.net/huoba1/article/details/41719699

codeception (4)Yii2下创建Acceptance Tests(验收测试)相关推荐

  1. vue2.9.6版本下创建vue-cli脚手架

    在vue2.9.6版本下创建vue-cli脚手架 1.查看本地环境 D:> node -v v14.16.0 D:> vue --version 2.9.6 2.初始化vue-cli 命令 ...

  2. android创建布局文件,android学习——Android Studio下创建menu布局文件

    一.问题: android studio项目中没有看到menu文件夹: 在android studio项目中想要添加menu布局文件,一开始我的做法是:直接在res文件夹右键选择xml文件来添加,如下 ...

  3. Linux下创建硬链接,文件访问为空,提示:xxxx: 符号连接的层数过多

    Linux下创建软链接|硬链接,文件访问为空,提示:x x x: 符号连接的层数过多. 原因:创建符号链接的时候未使用绝对路径,无论是源文件路径还是目标路径,都需要使用绝对路径. 如: ln -s / ...

  4. ubuntu修改新增用户的目录_Ubuntu 18.04下创建新用户/目录、修改用户权限及删除用户的方法...

    以下介绍在Ubuntu 18.04系统下创建新用户/目录.修改用户权限及删除用户的正确方法.在Ubuntu系统上创建新用户使用[sudo useradd 用户名]命令,但只能创建用户,不能在/home ...

  5. R语言使用fs包的dir_create函数在指定路径下创建新的文件夹、使用file_create函数在指定文件夹下创建文件

    R语言使用fs包的dir_create函数在指定路径下创建新的文件夹.使用file_create函数在指定文件夹下创建文件 目录

  6. 在tomcat下创建和发布WEB应用

    在tomcat下创建和发布web应用,对于单纯的jsp程序来说,在apache-tomcat-6.0.016/webapps文件夹下建立一个程序目录,然后将jsp程序放在该目录下即可.比如,在apac ...

  7. 【 Linux 】创建一个文件夹并在此文件下创建一个c源文件

    我们需要单独创建一个文件夹来存放自己的文件,例如存放使用vim编写的c源文件,或者一个工程内的所有东西. 我们以在Linux下的home文件夹下创建一个vim文件夹,然后在此文件夹下创建一个c源文件, ...

  8. linux下创建具有root权限的账户

    linux下创建具有root权限的账户 http://blog.chinaunix.net/uid-24631445-id-2981034.html posted on 2013-11-01 20:3 ...

  9. 【Groovy】xml 序列化 ( 使用 MarkupBuilder 生成 xml 数据 | 标签闭包下创建子标签 | 使用 MarkupBuilderHelper 添加 xml 注释 )

    文章目录 一.标签闭包下创建子标签 二.使用 MarkupBuilderHelper 添加 xml 注释 三.完整代码示例 一.标签闭包下创建子标签 在上一篇博客 [Groovy]xml 序列化 ( ...

最新文章

  1. linux vim 高级,Vim命令高级用法
  2. 《数据结构》知识点Day_04
  3. 1936年发表理想计算机的论文,科学网—图灵1936年论文解读(1):可计算性 - 柳渝的博文...
  4. “云计算”越来越重要 但更重要的是“云安全”
  5. [原创]K8 cping 3.0大型内网渗透扫描工具
  6. LeetCode 637. 二叉树的层平均值(层次遍历queue)
  7. 把控站外seo效果的几个操作点
  8. python获取系统参数_python 常用系统参数
  9. php 瓶颈,追踪php代码性能瓶颈
  10. Spark Streaming保存到HDFS目录中案例
  11. CANape编程语言CASL之Script的创建与调用
  12. 让RTL8187无线网卡在linux 2.6.28内核支持aircrack-ng注入。
  13. 阿里云矢量图标使用方法
  14. 嵌入式系统是不是计算机系统,开发必知:嵌入式系统对比计算机系统
  15. 网络工程师必备「真实案例」分享网络工程师面试经历_一些常见问题,你准备好了吗?
  16. 评量子论的两本科普书籍
  17. matlab 数字和字符串转换
  18. gif表情制作软件怎么制作gif动图
  19. 推荐一个免费服务器网站|亲测可用
  20. deep learning编程作业总结1---喵咪识别

热门文章

  1. Redis初学:7(Set类型)
  2. Java项目:宠物医院预约挂号系统(java+JSP+Spring+SpringBoot+MyBatis+html+layui+maven+Mysql)
  3. 查看linux虚拟机信息,虚拟机:Linux查看线程信息的步骤
  4. 【Linux】Linux 简单操作指令之磁盘管理
  5. Android 数据存储-内外部存储测试
  6. HashSet中的add()方法( 一 )(详尽版)
  7. 20-flutter下拉刷新与上拉加载
  8. iOS UIButton 文字图片上下左右布局
  9. swif 在字符串中查找特定字符索引以及改变字符串的指定位置的颜色 字体大小
  10. 手把手教你在应用里用上iOS机器学习框架Core ML