一、被测系统介绍:
客户是公司最宝贵的资源,为了更好的挖掘老客户的价值,并开发更多新客户,
公司决定实施客户关系管理系统。希望通过这个系统完成对公司客户基本信息、联系
人信息,交往信息,服务信息的规范化管理,希望通过对销售机会、客户开发过程的
跟踪和记录,提高新客户的开发能力,希望系统提供相关报表,以便公司高层领导能
够随时了解公司客户情况。
客户服务是一个设计多个部门,存在一定的流程工作,客户服务水平的高低决定
着公司的核心竞争力。希望通过该系统,让相关人员可以在线完成对客户相关的处理
和服务记录。 同学们在对该系统进行功能测试前要熟悉软件的操作和功能,理解整个
操作的流程和系统的需求,对系统进行测试。测试包括三个方面:第一方面手工测试
,在这个阶段我们要进行测试准备工作包括搭建测试环境,也就是被测系统的部署和
测试工具、测试管理平台的搭建等,然后是需求阶段包括测试需求分析,测试计划的
制定,测试用例设计,测试执行,缺陷报告的编辑和提交,缺陷生命周期管理,这个
方面可以利用测试管理平台对测试的全流程和流程中形成的测试文档进行管理,第二
方面功能自动化测试可以个根据测试需求利用自动化测试工具对系统的界面GUI功能
,进行自动化测试设计和自动化测试、回归测试、迭代测试等。第三方面是性能测试
,在系统功能测试通过之后为了避免在系统上线后可能遇到的性能问题,包括可承受
的最大并发风险,系统在长时间运行的条件下能不能持续稳定地提供服务并具有一定
的容错性。
二、系统的功能模块:
1.系统架构类参数:
1.1.系统集成Mysql数据库,用于存储平台的数据,数据管理简洁,调理清晰;
1.2.系统采用BS架构,支持单机和服务器部署,部署访问简明易操作;
1.3.系统前后台共用同一个登录界面,交互显示友好;
1.4.后台账号可以管理整个平台的用户数据,便于管理和统计分析数据。
2.系统功能类参数:
2.1.系统分为七大模块:客户管理、联络管理、文档管理、预定管理、日志管理、关
于我们
2.2.在客户管理子模块下可以新增客户信息、管理潜在客户,正式客户,放弃客户,
签约客户;还可以对已添加客户的信息进行丰富,有效地实现客户信息的增删改查
,帮助企业高效分类和管理不同类型的客户信息。
2.3.联络管理模块和客户管理模块之间可以实现数据传输,在子模块添加联络模块
下添加客户联络方式的时候,平台的相应操作人员可以选择对自己添加的每条客户
信息进行联络方式的添加;在子模块联络管理中可以修改已变更的或增加的联络信
息或修改删除等。
2.4.文档管理模块下可以支持对客户联络过程中形成的文档,例如参数表、报价表
、预案、立项计划书等的增删改查。
2.5.日志管理模块下可以添加与客户之间的沟通进展信息并管理。
2.6.关于我们则是系统的所属和开发单位及部门信息和官网地址链接,通过此可以
联系我们,了解我们。
三、客户管理系统登录模块功能自动化测试
实验一、脚本录制回放实验
实验内容导航
1.实验步骤
2.实验需求
3.实验目标
4.实验理论
5.操作步骤
6.实验报告模板
7.实验课尾交流
实验步骤
理解脚本录制的原理熟悉需要测试的功能的需求认真分析实验需求独立完成实验任务认真填写实验报告,并细致分析与总结本次实验
实验需求
成功搭建被测系统crm客户管理平台;成功安装AutoRunner功能自动化测试工具,可以录制回放脚本使用IE浏览器,并且版本不超过IE9
实验目标
初步了解功能自动化测试工具的使用掌握录制和回放的基本操作熟悉脚本编辑区域的脚本信息掌握报告结果的分析
实验理论
实验理论:自动化测试工程实际就是一个工具模拟人工的过程,这个过程可以细分
成俩个独立又相互关联的阶段,首先是用自动化测试工具模拟记录人工的操作过程
形成测试脚本,第二个阶段是自动化测试工具根据及录下的人工的操作步骤和后期
设计的输入参数,自动循环往复执行重复的操作,对被测系统进行全方位立体式的
测试,以期找出系统的所有缺陷。
实验操作步骤:
自动化测试工具的界面介绍:
2.功能自动化测试工具AutoRunner的初次使用:
3.在自动化测试工具的工作区域新建项目:
输入项目名称等信息:
4.新建脚本,一般可以右键 项目直接新建:
然后编辑脚本名称:
5.录制脚本:
6.被测系统的展示:是一个界面很简单,功能很丰富的被测对象,可以用
来测试不同的功能点、逻辑、业务流程是学习自动化的经典案例。
7.开始录制脚本的过程
注意:勾选全新录制:脚本编辑区的代码会自动清空,只保留本次录制的内容
未勾选全新录制:脚本编辑区的代码会保留原有的,然后新增录制的内容,第一
次录制脚本.的时候因为之前没有脚本内容可以勾选。
8.录制脚本的过程中录制框会自动缩小,并且记录人工的操作:
打开被测系统,进入到首页
9.录制过程:
9.1.点击用户名输入框,输入用户名:test
9.2.点击密码输入框,输入密码:test
9.3.点击退出系统按钮,结束录制:
点击结束录制按钮可以结束录制过程,在AR的脚本编辑区域会显示脚本:
完整的脚本如下:
//ar.// IE is loading web. Wait ...
//ar.// IE has loaded web.
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").clickControl("INPUT_text_username", 26, 12, "left");
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").setValue("INPUT_text_username", "");
ar.inputKey("Enter");
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").setValue("INPUT_text_username", "test");
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").clickControl("INPUT_password_password", 29, 8, "left");
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").setValue("INPUT_password_password", "test");
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").clickControl("INPUT_submit_登录", 37, 13, "left");
//ar.// IE is loading web. Wait ...
//ar.// IE has loaded web.
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").clickControl("A_退出系统", 15, 3, "left");
对于得出的脚本,我们可以进行一下解读:
第一行:ie浏览器正在加载页面信息,请稍等
第二行:ie浏览器页面信息加载成功
第三行:点击“window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer")”这个窗口下的“clickControl("INPUT_text_username", 26, 12, "left")”用户名输入框;26,12分别是鼠标点击该输入框的位置相对于该框的最左上角的像素点的位置偏移量的横纵坐标,“left”指的是点击鼠标的方式是左键
第四行:在“window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer")”这个窗口下的“setValue("INPUT_text_username", "test")”用户名输入框中输入用户名“ ”
第五行:点击键盘“enter”键
第六行:在“window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer")”这个窗口下的“setValue("INPUT_text_username", "test")”用户名输入框中输入用户名“test”
第七行:点击“window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer")”这个窗口下的“clickControl("INPUT_password_password", 29, 8, "left");”密码输入框
第八行:在“window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer")”这个窗口下的“setValue("INPUT_password_password", "test")”的密码输入框输入密码“test”
9.4对于上面我们录制好的脚本其实就可以发起运行了,我们可以先让脚本跑起
来看看运行的过程和运行的结果:
执行的结果包括执行日志信息和执行结果:
下面我们先来看执行的日志,日志信息有三个部分:脚本内容:记录了脚本的详
细内容,其实就是我们录制下来的脚本,详细情况可以在脚本编辑区域查看;记
录详细:脚本在执行的过程中对对象的识别、点击、输值、展开等;检查点的校
验结果等的执行是否成功的统计分析;结果总结部分显示执行的脚本的名称,脚
本的录像文件,默认是AR的自带录屏软件,脚本开始执行时间,脚本执行结束时
间,脚本执行过程中耗费的时间,脚本执行的结果:
第一部分:脚本详细:
第二部分记录详细:
第三部分结果总结:
脚本的执行输出及结果,记录的是要打印的内容和脚本的执行结果,默认没有添
加打印到输出语句是没有内容打印到输出区域的:
-------------------------------
-07-18 09:33:00
login.bsh脚本:
执行结束,耗时9秒。
执行结果:执行成功!
9.5通过以上的执行,我们可以知道录制下来的脚本可以用来直接作为我们测试
用的测试脚本,那么这个脚本里面其实我们还可以在做一些编辑,使得脚本更加
简洁,而且让脚本的效率大大提高,下面我们来看如何对这个脚本进行简化:
在这个我们直接录制下来的脚本里面有绿色的注释部分,注释部分我们都知道是ie
浏览器在加载一些页面信息,在测试过程中没有实际的作用,在脚本的执行过程中
也不会去执行这些注释过的代码,那么下面我们把脚本中的注释部分先去掉:
然后执行下脚本:
简化后的脚本:
执行下简化后的脚本:
执行完成后我们可以看到脚本的输出区域显示脚本正常执行,得到了我们想要的
结果。
9.6有时候我们在想,脚本到这是不是就完美了呢?其实没有我们还可以作进一
步的简化,我们的自动化测试工具可以强行网输入框里面输入需要输入的值,而
不需要像人工操作那样先要点击输入框把鼠标的光标对到输入框内,再往输入框
里面输值:根据这一思路我们可以把键盘输入“enter”键的脚本删除,然后把点击
输入框的操作脚本也删除掉,留下输入用户名输入密码,点击登录和退出系统的
脚本,这样我们做登录功能测试的脚本就可以做到最简化了:
剩下的脚本的完整信息如下:
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").setValue("INPUT_text_username", "test");
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").setValue("INPUT_password_password", "test");
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").clickControl("INPUT_submit_登录", 37, 13, "left");
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").clickControl("A_退出系统", 15, 3, "left");
我们如果说有点不放心,万一作者这边有什么没注意或者有错误呢?这里大家在
处理脚本的时候可以先对想要删除的脚本进行注释,注释过后执行下脚本,看看
执行的结果有没有问题,确认没有问题之后再删除也不迟,当然作者已经实践过
太多次了,确认过没有问题。下面我们把最简化的脚本执行下看看结果是不是跟
作者前面设想的一样:
果然结果是令人振奋的,和我们之前分析的一样,而且我们的脚本的执行效率也
得到了很大的提高,脚本的执行现在的耗时变成了6秒,比之前的9秒少了3秒,
这个数字大家可能没有觉得有什么大的概念,这个量级是我们现在还不太能感觉
得出来的,大家不妨想一想,如果我们的脚本需要重复执行十万次,那么这个时
间账就不难算了,脚本没有简化前我们大概需要花费的时间是9X100000=900000秒
,也就是250小时;简化后的脚本需要6X100000=600000秒,大概是166.67小时
节约了约84个小时,是不是感觉瞬间就很具体了呢?是的在实际的项目里面有太
多的场景下需要这么大的数据量的测试了,所以脚本处理的得当会大大提高测试
效率,降低测试成本。思路决定的是你以后的水平和高度的唯一因素。
实验二、脚本编辑和脚本参数化详细设计过程和回放实验
实验内容导航
1.实验步骤
2.实验需求
3.实验目标
4.实验理论
5.操作步骤
6.实验报告模板
7.实验课尾交流
实验步骤
理解脚本录制的原理熟悉需要测试的功能的需求认真分析实验需求独立完成实验任务认真填写实验报告,并细致分析与总结本次实验
实验需求
成功搭建被测系统crm客户管理平台;成功安装AutoRunner功能自动化测试工具,可以录制回放脚本使用IE浏览器,并且版本不超过IE9
实验目标
初步了解功能自动化测试工具的使用掌握录制和回放的基本操作熟悉脚本编辑区域的脚本信息掌握报告结果的分析
实验理论
实验理论:自动化测试工程实际就是一个工具模拟人工的过程,这个过程
可以细分成俩个独立又相互关联的阶段,首先是用自动化测试工具模拟记
录人工的操作过程形成测试脚本,第二个阶段是自动化测试工具根据及录
下的人工的操作步骤和后期设计的输入参数,自动循环往复执行重复的操
作,对被测系统进行全方位立体式的测试,以期找出系统的所有缺陷。
实验操作步骤:
在上一个实验的基础上我们对脚本进行进一步处理,录制下来的脚本还是
一个比较原始的框架,对于这个框架我们只能把它看成是后面脚本编辑的
一个原型,在原形的基础上我们可以大胆地做尝试,因为原型坏了我们可
以再更换,也就是再重新录制就好了,反正原型的内容及其简单,原理我
们也已经掌握了,那么下面我们的问题就来了,在录制下来的脚本里面只
有简单的一组测试数据,那就是在登录的时候我们输入的账号:test;密
码:test;我们说了自动化测试的使用场景一般是数据量很大的时候所做
的重复操作,对于这样的登录场景,我们也需要输入不同的账号密码,进
行登录。下面我们根据这一思路进行脚本的编辑和参数化:
脚本参数化命令的添加:
脚本命令是:getFrom
命令含义:ParameterData类中的成员函数,获取指定参数的值。
命令参数:一个参数,输入参数名称。
命令返回:指定参数的值,以字符串返回。
命令产生:手工添加。
这里面要注意脚本参数化命令添加的位置,是在用户名和密码值的后
面添加,并且需要把原来录制的脚本中的静态值“test”删除,完成之后的脚本如下:
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 –WindowsInternetExplorer").setValue("INPUT_text_username",""+pd.getFrom("name"));
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 -WindowsInternetExplorer").setValue("INPUT_password_password",""+pd.getFrom("password"));
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - WindowsInternetExplorer").clickControl("INPUT_submit_登录", 37, 13, "left");
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").clickControl("A_退出系统", 15, 3, "left");
为了后面其他人再看我们的脚本能快速理解我们可以在监本参数化的位置添加注释:
参数表设计:
刚才我们在脚本里面已经添加好了参数化命令,命令中的参数字段的取值是
从参数表里面对应的表格里面去取值的,那么我们就在参数表设计区域把参
数内容设计好:
点击参数表按钮:
然后点击增加行按钮,添加一行
后面我们假设添加三组数据,再点击添加列按钮:
然后编辑已经添加好的表格:表格的“名称”这一列填写参数化字段的名称,
注意一定要和脚本里面的名称一致,顺序也要一样第一行填写“name”,第
二行填写“password”;从#0列开始设计参数值,这里面的参数值我们先设
计可以正常登录的“name”和“password” :
添加参数化循环:
这个步骤的化我们可以用快捷键来操作,先把脚本的第一行空出来,光标定
位到第一行,点击 ,就可以快捷地生成循环的命令:
生成的脚本命令如下:
for(ParameterData pd : ar.getParameterDataList("login.xls")/*.subList(0, 3)*/)
{
//ar.parameterData = pd;//ar.parameterData可用于脚本之间传递参数
}
这就是一个for循环。
下面我们就可以把之前编辑好的脚本剪切到for循环里面,然后点击保存按钮,
保存我们之前的所有编辑和设置操作,当然你也可以做一步保存一步:
做完以上的操作我们就可以运行这个已经做好参数化的脚本,在这个脚本
里面的参数表里我们设计了三组数据,第一组,name=“test”;password=“test”
,第二组,name=“test1”;password=“test1”,第三组,name=“test2”,
password=“test2”。这样的话我们在执行这个脚本的时候可以观察AR是不
是按照我们的设计思路去执行所有的用例,下面我们先打开客户管理系统,
进入登录页面,最小化到任务栏或者直接放在桌面,然后点击开始执行按钮 ,
就可以观察整个脚本的执行过程和日志、结果,过程部分后面会给大家视
屏连接,这里带大家看一下日志和结果:
日志信息如下:
脚本详细:
记录详细:
结果总结:
执行结果:
这里给出了脚本的执行结果,但是美中不足的是没有把每一条用例的执行结
果打印出来,下面我们通过添加打印到输出的功能来实现用例执行结果的输
出。那么问题又来了,什么时候打印,以什么为判断的依据?这个是需要我
们思考的,我们知道,在登录成功之后系统没有明确的提示信息,但是我们
登录成功之后系统的界面会发生跳转,从登录页跳转到系统桌面:
那么我们就可以以“系统桌面”这个对象存不存在来判断,用例执行是否成功,
如果存在即用例执行成功,如果不存在那么用例执行失败,那么什么时候打
印呢?我们是在客户管理系统的登录页输入用户名和密码点击登录按钮之后,
才能看到登录成功还是失败,所以在点击登录之后添加打印到输出的脚本命
令,根据以上的分析我们来对脚本进行处理:
首先,我们把“系统桌面”这个对象录制下来,这个时候我们在点击录制按钮
之后,在弹出的对话框里面把全新录制前的勾选去掉,因为如果不去掉的化
之前录制的脚本就会被现在录制的脚本覆盖,我们现在是想要在之前的脚本
的基础上补录一个“系统桌面”对象:
录制下来的脚本内容是:
//ar.// IE is loading web. Wait ...
//ar.// IE has loaded web.
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer_2").clickControl("TD", 50, 10, "left");
我们对新录制下来的脚本进行最简化处理,留下一行脚本:
处理完成的完整脚本如下:
for(ParameterData pd : ar.getParameterDataList("login.xls")/*.subList(0, 3)*/)
{
//ar.parameterData = pd;//ar.parameterData可用于脚本之间传递参数
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").setValue("INPUT_text_username", ""+pd.getFrom("name"));
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").setValue("INPUT_password_password", ""+pd.getFrom("password"));
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").clickControl("INPUT_submit_登录", 37, 13, "left");
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer_2").clickControl("TD", 50, 10, "left");
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").clickControl("A_退出系统", 15, 3, "left");
}
接下来我们要添加一个判断,判断如果“系统桌面”这个对象存在的话,就打
印“登录成功!”,依照这个思路我们对脚本进行下一步处理,我们把上图里
面的第七行改成判断语句,并添加打印语句:
If(ar.window ("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer_2").controlExist ("TD")){
System.out.println("登录成功!");
}else{}
完成之后完整的脚本如下:
for(ParameterData pd : ar.getParameterDataList("login.xls")/*.subList(0, 3)*/)
{
//ar.parameterData = pd;//ar.parameterData可用于脚本之间传递参数
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").setValue("INPUT_text_username", ""+pd.getFrom("name"));
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").setValue("INPUT_password_password", ""+pd.getFrom("password"));
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").clickControl("INPUT_submit_登录", 37, 13, "left");
if (ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer_2").controlExist("TD")){
System.out.println("登录成功!");
}else{}
ar.window("IEFrame_上海泽众软件科技有限公司客户管理系统 - Windows Internet Explorer").clickControl("A_退出系统", 15, 3, "left");
}
下面我们再整这个脚本得出的日志和结果如下:
日志:
脚本详细:
记录详细:
结果总结:
结果输出:
这样三条用例的每一条用例的执行结果都有了。