引言
前面一节已经讲过访问百度的脚本,现在一个登录的UI自动化案例,以禅道为例(暂时不用公司网站,最近公司信息安全管控比较严格)。
脚本编写
写脚本如写用例,只不过脚本是以代码的方式写,用例以汉字的方式写。首先我们写一个登录的用例,就要捋好各个节点:
1、输入账号;
2、检查账号;
3、输入密码;
4、检查密码;
5、点击登录;
6、判断页面重定向跳转到首页;
7、判断页面包含某个文件;
8、判断登录成功后,cookie存在;
具体代码如下:
/*@author: Leo
@software: pycharm
@file: login_web.js
@time: 2020/7/5 0005 11:48
@Desc:
*/
/* __author__ = 'Leo' */
describe('登陆zentao网站案例', function() {
beforeEach(() => {
cy.visit('http://123.206.13.15/zentao/user-login.html')
})
it("登陆案例", function()
{
// 输入用户名
cy.get('#account').type('******')
.should('have.value', '******')
// 输入密码
cy.get('[name="password"]').type('******')
.should('have.value', '******')
// 提交表单
cy.get('#submit').click()
// 判断页面跳转到 /zentao/my/
cy.url().should('include', '/zentao/my/')
// and '欢迎您:admin' in page
cy.get('body').should('contain', '我的地盘')
// 判断存在cookie值 'zentaosid'
cy.getCookie('zentaosid').should('exist')
})
})
执行脚本
还是启动Cypress程序,双击脚本login_web.js
执行结果:
脚本分析
1、Cypress特性之一:实时重新加载代码。这句话的意思就是,如果你在编辑器里修改了的脚本部分内容,不需要重启应用程序,直接运行脚本会加载最新编辑的代码。
2、最后三个断言:
一个是断言url:
3、我们知道元素定位方式一般两种:
get:按 css 或元素特定属性的方式定位元素
contains:按特定字符串定位元素
所以是断言body中,也就是返回的页面是否存在"我的地盘"这个特殊字符。
4、就是验证登录后的cookies:
以上内容就是这些。
总结
有兴趣可以持续关注。另外喜欢测试开发、性能测试的伙伴可以加入学习交流QQ群,一起学习成长。