自动化测试:Autorunner的使用

自动化测试:Autorunner的使用

一、实验目的

1、掌握自动化测试脚本的概念。

2、初步掌握Autorunner的使用

二、Autorunner的简单使用

autoRunner使用方法

新建项目

a) 在项目管理器空白区域,右键鼠标,选择新建项目

b) 输入项目名后,点击[确定]. 在初次打开autoRunner时选择的用于存放测试文件的文件夹里会有一个以项目名称为名的文件夹,各种测试脚本,参数表都存放在这里.

新建脚本

a) 在项目名上右键鼠标,选择新建脚本

b) 输入脚本名(最好是英文和数字),点击[确定],在右边脚本编辑区域,会打开脚本页

录制脚本

点击工具栏 (若不能录制,先关闭Autorunner,再以管理员身份运行即可

,或者点击菜单栏

点击开始录制后, 会弹出对话框

根据自己需要,选择是否记录击键和记录时间间隔,选好后点击[确定].

c) 点击[确定],开始录制测试过程,autoRunner会自动最小化,在屏幕右下打开录制过程记录窗口,此时,开始测试操作.

windows自带计算器为例:

依次点击:开始-->所有程序-->附件-->计算器,然后进行操作

操作完成,点击 右下记录窗口  停止录制 按钮来结束录制.

编辑测试脚本

录制完成后,在脚本编辑区域会生成本次操作的脚本:

:绿色字体为注释内容,运行时不会执行注释内容.

脚本内容大致解读:

ar.window(“Scicalc_计算器”) 表示: 计算器的窗体

clickControl(“Button_xx”) 表示: 鼠标对”Button_xx”的点击操作, Button_xx 为对象名

checkProperty(“axx”,”bxx”,”cxx”) 表示: 执行到这一步时,对控件 axx  bxx 属性的值,  cxx(期望值,由自己设定) 来验证. 此语句会在控制台输出 期望值,实际值和验证结果

ar.inputkey(“Enter”) 表示: 按下键盘上的按键 Enter

for 表示: for循环,脚本中的循环语法参考javafor each循环

ParameterData pd 表示: 循环参数列表时,当前循环次数对应的值,取值方法为调用pd对象的 getFrom(“xx”) 方法. 例如: pd.getFrom(“btnA”)

btnA是参数表中,名为 btnA这一行参数的名,循环时,依次从这一行中读取参数

b) 如果需要在脚本中增加 循环 或者 对当前步骤的某个对象的属性值进行验证,可以在脚本编辑区域,右键鼠标:

  增加循环:

在脚本编辑区域空白处,右键鼠标,选择  循环参数列表  

for(ParameterData pd  :  ar.getParameterDataList("first.xls")  /*.subList(0, 5)*/)

{

ar.window("SciCalc_计算器").clickControl("Button_" + pd.getFrom("btnA"));

ar.window("SciCalc_计算器").clickControl("Button_" + pd.getFrom("btnB"));

}

循环语法参考 java中的 for each语法.

第一块灰色区域(ParameterData,参数对象 ),表示当前循环次数对应的参数列表的列的值

第二块灰色区域(ar.getParameterDataList("first.xls")), 表示从first.xls参数列表中读取参数. Xx.xls 是存放参数的excel表格

第三块灰色区域(/*.subList(0, 5)*/), 为注释区域,表示截取参数列表 0位到第 5 位之前的数据

将参数表参数代入循环中:

黄色标记区域的代码是将参数表中的参数代入到脚本的循环中.核心方法就是调用参数对象的 getFrom(“”) 方法,: pd.getFrom("btnA")) 其中,btnA是表示参数表中 名为btnA 行的 .  "Button_" + pd.getFrom("btnA") 此条语句是一个拼接字符串的语句, Button_  参数表中的 btnA中的数值, 拼接成需要操作的对象名, btnA=1

拼接后的效果是: Button_+1

c) 增加验证

在脚本编辑区域空白处右键鼠标,选择

注意光标位置,会在光标处插入代码.

点击[校验属性],弹出对话框:

依次选择要校验的 对象名称, 属性名称, 和期望值后,点击确定,会在光标出增加校验的脚本代码.

图例:

ar.window("SciCalc_计算器").checkProperty("Edit", "value", "8. ");

查看对象库

在工具栏点击 

,打开对象库;

这里需要查看,脚本中用到的对象,在对象库中是否都有,如果缺少,运行脚本时会出错.对象不足时,可以点击对象库左下的[增加对象]按钮,会像录制时一样,此时选择需要的对象,录制好以后停止录制.

编辑参数

在控制台标签页上点击[参数表]

,打开参数表

对参数表进行设置:

7.执行脚本

点击工具栏

,或者点击 菜单栏

,开始执行脚本.

执行开始后,autoRunner会自动最小化,程序会完整重复录制的过程.

运行结束后,autoRunner控制台会打印出本次脚本执行情况:

autoRunner参考文件地址:

http://bbs.yunceshi.net/search.php?mod=forum&searchid=10&orderby=lastpost&ascdesc=desc&searchsubmit=yes&kw=AutoRunner%BD%CC%B3%CC

AutoRunner教程-AutoRunner高级|实用|基础|入门|使用教程下载-泽众软件测试网

初期自动生成的代码:

将光标放到需要循环参数的地方,右击,选择循环参数表修改代码

上图是将:(*.txt)改为:pd.getFrom("textbox"));

Textbox是参数名。

Web程序测试脚本代码:

易备客网络版登陆功能为例:

录制后的初始脚本并且验证用户名不存在信息是否提示:

登陆处加进循环登陆,并且验证用户名不存在信息是否提示:

加进循环后参数表设置如下:

三、实验任务

以下两个任务、至少完成两个

1、对于三角问题,设计相应的GUI程序,用文本框接受输入和输出,输入为三角形的三条边,输出为:参数不合法、不能构成三角形、普通三角形、等腰三角形、等边三角形。

用Autorunner测试该GUI程序,测试用例通过弱健壮等价类测试用例设计法得到。

实验步骤:

  1. 弱健壮等价类测试用例设计法设计测试用例,得到测试用例表。

测试用例ID

a

b

c

预期输出

T1

3

4

5

一般三角形

T2

1

2

3

不能构成三角形!

T3

3

3

3

等边三角形

T4

-3

4

5

参数不合法!

T5

3

2

2

等腰三角形

  1. 用Autorunner测试该GUI程序,得到测试结果,填写软件缺陷报告。(软件缺陷报告格式同实验2)

测试用例运行结果:

使用autorunner进行录制,得到录制脚本,执行录制脚本,得到运行结果如下

简单软件缺陷报告:

测试模块:

对三角形求面积使用Autorunner自动测试方法进行测试

开 发 者:

测 试 员:

测试日期:

2024.6.18

软件缺陷列表

缺陷ID

缺陷详细信息

BUG1

BUG2

BUG3

BUG4

2、对于工资计算问题(见实验5 任务1),设计相应的GUI程序,用文本框接受输入和输出,输入为:工作时间,小时工资,输出为:月工资。

用Autorunner测试该GUI程序,测试用例通过逻辑覆盖法中的判定覆盖标准得到。

实验步骤:

  1. 弱健壮等价类测试用例设计法设计测试用例,得到测试用例表。

编号

hour

money

预期输出

T1

60

100

8500.00元

T2

30

50

1500.00元

T3

45

60

2850.00元

T4

60

70

5950.00元

  1. 用Autorunner测试该GUI程序,得到测试结果,填写软件缺陷报告。(软件缺陷报告格式同实验2)

测试用例运行结果:

使用autorunner进行录制,得到录制脚本,执行录制脚本,得到运行结果如下

简单软件缺陷报告:

测试模块:

对工资问题使用Autorunner自动测试方法进行测试

开 发 者:

测 试 员:

测试日期:

2024.6.18

软件缺陷列表

缺陷ID

缺陷详细信息

BUG1

BUG2

BUG3

BUG4

作业1:GUI程序代码:

import tkinter as tk

from tkinter import messagebox

# 创建主窗口

root = tk.Tk()

root.title("三角形判断")

root.geometry("400x200")

root.resizable(False, False)

# 创建标签和文本框用于输入三角形的三条边

tk.Label(root, text="请输入三角形三条边:").pack()

side1_entry = tk.Entry(root)

side1_entry.pack()

side2_entry = tk.Entry(root)

side2_entry.pack()

side3_entry = tk.Entry(root)

side3_entry.pack()

# 创建显示文本框用于输出结果

result_label = tk.Label(root, text="")

result_label.pack()

# 定义判断按钮触发的函数

def check_triangle_type():

    side1 = float(side1_entry.get())

    side2 = float(side2_entry.get())

    side3 = float(side3_entry.get())

    result = classify_triangle(side1, side2, side3)

    result_label.config(text="三角形类型: " + result)

# 创建判断按钮

check_button = tk.Button(root, text="开始", command=check_triangle_type)

check_button.pack()

def classify_triangle(side1, side2, side3):

    if side1 <= 0 or side2 <= 0 or side3 <= 0:

        return "参数错误!"

    elif side1 + side2 <= side3 or side1 + side3 <= side2 or side2 + side3 <= side1:

        return "不能构成三角形"

    elif side1 == side2 == side3:

        return "等边三角形"

    elif side1 == side2 or side2 == side3 or side1 == side3:

        return "等腰三角形"

    else:

        return "一般三角形"

root.mainloop()

作业2:GUI程序代码

import tkinter as tk

from tkinter import messagebox

# 创建主窗口

root = tk.Tk()

root.title("工资计算器")

root.geometry("400x200")

root.resizable(False, False)



# 创建标签和文本框用于输入月工作时间和小时工资

tk.Label(root, text="输入工时:").pack()

work_hours_entry = tk.Entry(root)

work_hours_entry.pack()



tk.Label(root, text="输入小时工资:").pack()

hourly_wage_entry = tk.Entry(root)

hourly_wage_entry.pack()



# 创建显示文本框用于输出工资

result_label = tk.Label(root, text="")

result_label.pack()



# 定义工资计算函数

def calculate_salary():

    work_hours = float(work_hours_entry.get())

    hourly_wage = float(hourly_wage_entry.get())

    salary = calculate_salary_based_on_hours(work_hours, hourly_wage)

    result_label.config(text="工资为: $%.2f" % salary)



# 创建计算按钮

calculate_button = tk.Button(root, text="计算工资", command=calculate_salary)

calculate_button.pack()

def calculate_salary_based_on_hours(work_hours, hourly_wage):

    if work_hours <= 40:

        return work_hours * hourly_wage

    elif work_hours <= 50:

        return 40 * hourly_wage + (work_hours - 40) * 1.5 * hourly_wage

    else:

        return 40 * hourly_wage + 10 * 1.5 * hourly_wage + (work_hours - 50) * 3 * hourly_wage

root.mainloop()

  • 24
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

珞(●'◡'●)雨了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值