dcsxlh

导航

 

讲解流程

(一)自动化测试环境搭建: (我在上一家公司“xx”也做了自动化测试,公司用的是RF做的自动化,RF是基于python语言编写的关键字驱动的测试框架,这个框架是结合了ride、wxpython、第三方库seleium2librily构建的一个测试环境,通过ride工具编写用例脚本,执行用例,操作的结果会以XML的形式输出在本地测试,在将 XML转换成HTML日志,报告,完成测试。 我要搭建自动化测试环境,需要用到python语言,所以要先安装python,第二个是安装wxpython,wxpython是python语言中一个GUI图形库,第三个安装的是ride,接下来是安装setuptools,通过setuptools来安装第三方库,然后就是安装我在自动化测试过程中用到的库, selenium2liabrary,requestliabrary这样我的自动化测试环境就搭建好了。)

(二)项目自动化的重点介绍 我在自动化测试过程中首先考虑的就是定位问题了,通常我比较常用的就是id/name/css/xpath这几种方法了,一般情况下我会优先考虑id或者name来定位,xpath我也比较常用,我想你也知道,xpath定位最简单,右键copy他的xpath就可以了。Css定位比较灵活,在前三种定位不到的情况下我就会用css来定位。这就是我常用的一些定位。 自动化测试还有个很重要的地方就是断言。我们做的每一个操作都有个预期的结果,为了使得我们的操作与预期的结果保持一致,我们需要对我们的操作进行断言,来确定我们的操作达到预期的结果。通常我会用关键字page should contain,页面包含文本;page should contain element页面包含元素;page should not contain button 页面不包含按钮;wait until page contain 等待页面包含文本等。

(三)项目描述流程 我讲一下我的项目中的xx这块的流程吧,他的主流程是注册—我要出借—投资。首先打开浏览器,open browser,后面接我们平台的网址,浏览器我们用的是谷歌。打开之后保证页面元素尽可能的显示出来,就要进行窗口最大化,用到关键字是maximize browser window,接下来就要进行注册了,通过click link点击立即注册就会跳转到注册页面,输入账户名关键字用input text,输入密码关键字用input password,输入邮箱号关键字用input text, 然后点击完成注册关键字用click button。注册完成后他会自动登录,在这里我可以对他进行断言,用关键字page should contain button我的账户,判断这个页面是否有这个按钮。 按照我的习惯,我会在这里连接数据库,确认我的注册信息是否添加成功,关键字用connect to database,后面接pymysql以及数据库名称,端口号,ip,用户名,密码等等,再用一条查询语句check if not exists in database对我刚才插入的数据进行查询,操作完成后断开数据库关键字用dicconnect from database 接下来就是在页面上将鼠标移动到我要出借,关键字用到mouse over,点击车贷click link,选择标的期限和类型,关键字用的是cilck element,如果想要下拉查看更多的信息可以用关键字execute javascript(window.scrollTo(0,5000))点击立即投资,click button, 页面跳转到新的窗口,这里就需要切换窗口操作,关键字是select window,然后在购买金额那里输入投资金额,关键字用input text,点击立即投资click button。跳出了一个弹框,需要确定投资金额,当初我在定位的时候用id/name/css/xpath怎么都定位不到,最后才知道他是一个frame框,想要定位的话首先要进入到框里,关键字用select frame,然后点击确认投资,用click button,然后就是退出frame框了,关键字用unselect frame.按照我的习惯。走完一个流程就要关闭浏览器,关键字用close browser. 我想你也知道,做自动化成本是很高的,需要对自动化进行维护,就要对用例进行分层封装来维护用例,最底层是元素层,中间是流程层,最上层是案例层,把最底层的元素层设置变量,翻译成中文,在流程层调用元素层,案例层填写实参调用流程层,它的一个逻辑是上级调用下级,封装的一个好处是出现问题只修改元素层的关键字,这样流程层、案例层响应相关的就会改变,这样就不用一层一层的修改了,只要进行简单的修改就会比较方便。除此之外,我还通过Jenkins设置定时对用例进行维护,设置定时的时候我一般会设置晚上12点开始跑流程用例,如果中间有个用例运行失败的话,那么就会有邮件发送到我的邮箱,这个邮箱是要先再Jenkins进行配置。这也是自动化用例维护的一种方式

 

 

 

案例二:

rf自动化:
我讲一下我的项目中的xx这块的流程吧,他的主流程是注册—我要出借—投资。首先打开浏览器,open browser,后面接我们平台的网址,浏览器我们用的是谷歌。打开之后保证页面元素尽可能的显示出来,就要进行窗口最大化,用到关键字是maximize browser window,接下来就要进行注册了,通过click link点击立即注册就会跳转到注册页面,输入账户名关键字用input text,输入密码关键字用input password,输入邮箱号关键字用input text, 然后点击完成注册关键字用click button。注册完成后他会自动登录,在这里我可以对他进行断言,用关键字page should contain button我的账户,判断这个页面是否有这个按钮。

按照我的习惯,我会在这里连接数据库,确认我的注册信息是否添加成功,关键字用connect to database,后面接pymysql以及数据库名称,端口号,ip,用户名,密码等等,再用一条查询语句check if not exists in database对我刚才插入的数据进行查询,操作完成后断开数据库关键字用dicconnect from database
接下来就是在页面上将鼠标移动到我要出借,关键字用到mouse over,点击车贷click link,选择标的期限和类型,关键字用的是cilck element,如果想要下拉查看更多的信息可以用关键字execute javascript(window.scrollTo(0,5000))点击立即投资,click button,
页面跳转到新的窗口,这里就需要切换窗口操作,关键字是select window,然后在购买金额那里输入投资金额,关键字用input text,点击立即投资click button。跳出了一个弹框,需要确定投资金额,当初我在定位的时候用id/name/css/xpath怎么都定位不到,最后才知道他是一个frame框,想要定位的话首先要进入到框里,关键字用select frame,然后点击确认投资,用click button,然后就是退出frame框了,关键字用unselect frame.按照我的习惯。走完一个流程就要关闭浏览器,关键字用close browser.
我想你也知道,做自动化成本是很高的,需要对自动化进行维护,就要对用例进行分层封装来维护用例,最底层是元素层,中间是流程层,最上层是案例层,把最底层的元素层设置变量,翻译成中文,在流程层调用元素层,案例层填写实参调用流程层,它的一个逻辑是上级调用下级,封装的一个好处是出现问题只修改元素层的关键字,这样流程层、案例层响应相关的就会改变,这样就不用一层一层的修改了,只要进行简单的修改就会比较方便。除此之外,我还通过Jenkins设置定时对用例进行维护,设置定时的时候我一般会设置晚上12点开始跑流程用例,如果中间有个用例运行失败的话,那么就会有邮件发送到我的邮箱,这个邮箱是要先再Jenkins进行配置。这也是自动化用例维护的一种方式。

posted on 2020-10-22 17:52  多测师_肖sir  阅读(244)  评论(0编辑  收藏  举报