基于反射的UI自动化测试

本文介绍了作者在阅读关于基于反射的UI自动化测试章节后,进行实践操作的心得体会。通过模拟用户行为,如加载、改变窗口属性、输入值等,作者遇到了加载速度过快导致未显示的问题,并通过延迟解决。文中强调了代码复用的重要性,创建了一个ReflectionHelp类来封装常用操作,并定义常量以方便管理被测应用程序的路径和名称。最后,概述了整个实践过程的步骤,包括创建被测应用程序和测试套件。
摘要由CSDN通过智能技术生成

到目前为止,net自动化测试之道中基于反射的UI自动化测试这章也看完了,光看不实践,那作用就甚微。因此必须练习并思考总结。被测应用程序是书中那个例子。在我的自动化测试套件中会模拟以下用户行为:加载被测form,改变form的位置、标题、大小,获取form的一些属性并打印,在TextBox中输入值,从下拉框中选择值,点击按钮,验证结果。

在实践的过程中,可能会遇到的问题及解决方法:1、加载form不显示(其实是因为显示太快了,没看到,让线程sleep一段时间就可以)。2、记得添加System.Windows.Forms,System.Drawing的引用。

书中讲的很散,我们不可能每讲一节就创建一个项目,那样太麻烦。因此所有的操作都在一个项目中完成。并且创建一个ReflectionHelp类,将多个章节都要用到的步骤封装成方法,如每次都会用到加载被测应用程序,因此我们可以创建一个LaunchApp方法,封装加载被测应用程序的步骤。另外,每做一个小测试,我们必定要用被测程序的名称和路径,如基于反射的测试中,Form的名称和Form路径应该每个小测试中都会用到,每次都要写Form名称和Form路径的变量,太麻烦了,而且如果Form的名称和路径改变的话,所有小测试都要改,因此我在ReflectionHelp类中创建两个常量(C#只有内置类型可以声明为const),这样要用到Form名称和路径的时候就引用这个类中的这两个常量。而且要变,只要变这两个常量的值,不影响其他的小测试。当然方法不唯一,我们可以声明两个属性,通过get方法获取值,set方法改变值,这样更灵活。

本例子在vs2010中运行正常。

大体上可以分为以下步骤:

1、创建被测应用程序ReflectionAUT

2、创建测试套件ReflectionTest

2.1、创建ReflectionHelp类

2.2、在main函数中模拟用户行为

首先创建被测应用程序ReflectionAUT

点击button1的代码:

private void button1_Click(object sender, EventArgs e)

        {

            string tb =textBox1.Text;

            string cb =comboBox1.Text;

            if (tb== cb)

            {

                listBox1.Items.Add("Result is tie");

            }

            else if (tb == "paper" && cb == "rock" || tb == "rock" && cb == "scissors" || tb == "scissors" && cb == "paper")

            {

                listBox1.Items.Add("The TextBox wins");

            }else

                listBox1.Items.Add("The ComboBox  wins");

        }

创建一个名为ReflectionTest的控制台项目,新建一个名为ReflectionHelp的类:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Threading;

using System.Reflection;

 

namespace ReflectionTest

{

    class ReflectionHelp

    {

        public const string formName = "ReflectionAUT.Form1";

        public const string path = "..\\..\\..\\..\\ReflectionAUT\\ReflectionAUT\\bin\\Debug\\ReflectionAUT.exe";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值