codeception (4)Yii2下创建Acceptance Tests(验收测试)

news/2024/9/9 12:16:26

以登录为例创建一个验收测试,名为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


http://lihuaxi.xjx100.cn/news/244142.html

相关文章

mysql-5.6 升级 5.7

#准备工作 1、停机 [rootlocalhost local]# /etc/init.d/mysqld stop Shutting down MySQL.. [确定]2、切换版本 [rootlocalhost local]# mv /root/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz ./mysql-5.7 [rootlocalhost local]# ln -s…

novaclient的api调用流程与开发

novaclient的api调用流程与开发 2015年07月05日 19:27:17 qiushanjushi 阅读数&#xff1a;3915 http://blog.csdn.net/tpiperatgod/article/details/18375387?utm_sourcetuicool 另一个地址&#xff1a;http://neuromancer.sinaapp.com/?p64 从nova client的入口查看 cat /u…

IDEA2021全局配置maven

此方法只适用于IDEA 2021版本 file>New Projects Settings>Settings for New Projects..

linux awk命令

2019独角兽企业重金招聘Python工程师标准>>> 简介 awk是一个强大的文本分析工具&#xff0c;相对于grep的查找&#xff0c;sed的编辑&#xff0c;awk在其对数据分析并生成报告时&#xff0c;显得尤为强大。简单来说awk就是把文件逐行的读入&#xff0c;以空格为默认…

zabbix监控windows(03,08)

监控windows主机&#xff1a;下载zabbix_agents_2.2.3.win.zip &#xff08;zabbix官网下载&#xff09;解压文件&#xff0c;把对应的文件&#xff08;32位或者64位&#xff09;考到C盘根目录(对应目录就OK)并带配置文件&#xff1b;编辑配置文件:zabbix_agentd.win.confLogFi…

使用java代码代替xml实现SSM

SpringBoot推荐开发者使用Java配置来搭建框架&#xff0c;SpringBoot中大量的自动化配置都是通过Java代码配置实现的&#xff0c;而不是XML配置&#xff0c;同理&#xff0c;我们自己也可以使用纯Java来搭建一个SSM环境&#xff0c;即在项目中不存在任何XML配置&#xff0c;包括…

spring的理解

看过《fate系列》的博友知道&#xff0c;这是一个七位英灵的圣杯争夺战争。今天主要来谈谈圣杯的容器概念&#xff0c;以便对spring的理解。 圣杯&#xff1a; 圣杯本身是没有实体的&#xff0c;而是将具有魔术回路的存在&#xff08;人&#xff09;作为“容器”&#xff0c;通…

not exists 跟not in 纪念一下

转载于:https://www.cnblogs.com/zzzzw/p/4973378.html