用loadrunner软件试试录制,或者ms.net也带了自动录制测试

解决方案 »

  1.   

    我也提议用录制软件和VSTS自带的test tools..但是boss不理我...
    他就要我写automation script...
    BTW,我本人也像了解一下这方面的技术
    希望各位知道的高手不吝赐教,小弟在此感激不尽了!Tks
      

  2.   

    你创建这样一个aspx页面:<%@ Page Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">    protected void Button1_Click(object sender, EventArgs e)
        {
            Control uc;
            try
            {
                uc = this.Page.LoadControl(this.TextBox1.Text + ".ascx");
            }
            catch (Exception ex)
            {
                uc = new LiteralControl(ex.Message);
            }
            this.Form.Controls.Add(uc);
        }
    </script><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
            输入ascx文件名称(不含后缀):
            <asp:TextBox ID="TextBox1" runat="server" Width="176px"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="开始测试" />
        </form>
    </body>
    </html>
    你可以看到,可以随时上传ascx。例如上传这样的ascx:<%@ Control Language="C#" ClassName="WebUserControl" %><script runat="server">    protected void Page_Load(object sender, EventArgs e)
        {
            this.Label1.Text = "我 " + DateTime.Now.ToString() + " 执行了服务器程序。";
        }
    </script><asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    asp.net根本不需要编译。可以一边执行,一边更新,就像这里可以随时上传并覆盖服务器上的ascx一样。当用户再次访问服务器的时候,瞬间就看到新的界面了。
      

  3.   

    什么“automation script...”呀!你可以写一个测试aspx,驱动无数可动态装载、可动态从客户端上传到服务器的ascx文件。而ascx可以用c#、vb.net、eiffel、VC++、JScript等服务器上已经支持的任何编程语言来写程序,不受语言限制。
      

  4.   

    当然深入一点地,你也可以把一堆dll文件动态上传到app_data目录下,然后在上传一个简单的数据文件指挥你的测试aspx使用反射方法“System.Reflection.Assembly.LoadFromFile”自动装入这些dll,实例化里边的Type,执行其测试程序。这显然比较费事,不过也是.net framework的基础方法。
      

  5.   

    楼上的高人~~~
    您实现的貌似是runtime时动态add usercontrol..
    和我的需求有点出入..
    我想研究一下如何用脚本在客户端动态构建数据,然后提交服务器端,达到一个自动化测试的效果
    例如,在客户端组织用户注册信息,然后自动提交163服务器,达到自动注册的效果,类似这样~
    请问有没有哪位高人能指导一下,不胜感激,谢谢!
      

  6.   

    顺便强调一下:“录制回放方法根本不是正确的自动化测试”。“用loadrunner软件试试录制,或者ms.net也带了自动录制测试”其实是对自动化测试的外行而言的。例如进行压力测试的时候,模拟进行上千万次几乎相同的动作,能够测试出来什么性能呀?
      

  7.   

    高手~~我顺便想问一个题外话的问题..
    之前我尝试过动态add一个user control
    在这个user control里实现了一些业务逻辑,还有一些button之类的server control
    当我在page里动态add 了user control之后,点击user control中的button,发现业务逻辑并没有执行了,并且表单里非JIT编译的数据全部被POST了..
    这个问题何解..?
      

  8.   

    您实现的貌似是runtime时动态add usercontrol..
    和我的需求有点出入..
    我想研究一下如何用脚本在客户端动态构建数据,然后提交服务器端,达到一个自动化测试的效果
    ——————————————————————————————————————————
    你可以随意更新测试程序。这是一个自动测试驱动程序。我只是举个例子,例如你可以改一下,让这个页面循环执行呀。你肯定是在任意一个远程浏览器上去执行测试aspx的呀。例如你可以让你美国的朋友访问测试aspx,在浏览器上同时执行10个。当然你还可以自己写一个winForm小程序,使用浏览器组件并行访问100个测试页面实例。把你的asp.net应用组件作为ascx测试。
      

  9.   

    当我在page里动态add 了user control之后,点击user control中的button,发现业务逻辑并没有执行了,并且表单里非JIT编译的数据全部被POST了..
    这个问题何解..?
    ——————————————————————————————————————————z
    这个问题是所有动态控件的基本生命周期的基础问题。回发页面page_load之后,如果根本没有重新创建原来的所有子控件,你肯定根本看不到它们,得不到它们的值,无法触发事件。对我来说,任何应用都优先考虑设计为ascx。任何项目我都设计为ascx,这样我就能把工程中每一个细节或者整体组合进新的项目里。开发中间件就是开发应用程序。
      

  10.   

    “开发中间件就是开发应用程序”确切地说,这是ui中间件,不是业务数据中间件。例如我承接了一个“汽车维修订单”任务,那么我提交给用户的ascx可以被客户组合进它自己的aspx中。同样,我分包我的任务,假设我需要一个“通用的电子表编辑”控件,和一个“盖图章”控件,我都会仔细设计为ascx包给别人。对于asp.net开发来说,以aspx页面为单位分接任务是很低级的工程组织方式。
      

  11.   

    当然回到你的问题,我说的思路测试一堆aspx也是完全可以的。我所提出的是一个aspx写的测试引擎,如果你没有理解“引擎”的意思,那么我可能说的稍微深一点。你不需要写一个WinForm的程序作为测试引擎。不可能最方便地部署WinForm程序,并且asp.net项目本来就应该用最简单的b/s去测试。我说的是如可开发一个通用的测试引擎程序。测试引擎根据一定的策略条件反复调用测试用例。例如你的一个测试用例ascx采用这样的流程:  设置本地环境;
      this.Page.Server.Execute(待测试的aspx路径,用来收集结果的HtmlWriter对象,true);
      判断结果,并且写入测试结果统计数据库;
      

  12.   

    个问题是所有动态控件的基本生命周期的基础问题。回发页面page_load之后,如果根本没有重新创建原来的所有子控件,你肯定根本看不到它们,得不到它们的值,无法触发事件。
    ===================================================================================
    这个我是知道的..任何事件都在Page_Load之后,请问这个问题要如何解决呢..?BTW,我比较菜,对您说的话并不是完全了解,只在似懂非懂之间,再揣摩揣摩也许可以明白,很感谢您的回答,tks.
      

  13.   

    设置本地环境;
      this.Page.Server.Execute(待测试的aspx路径,用来收集结果的HtmlWriter对象,true);
      判断结果,并且写入测试结果统计数据库;
    ====================================================================================
    但是请问..?如何可以动态添加数据并提交呢..?能否给一个大致的编程思路或者example,抱歉,我比较笨,打扰您的时间了.以上只是去执行一个page而已,如何可以click某个测试page的button,或者说是call server method(当然,这只是说起来象是这样的)