Loadrunner生成随机字符

Categories: 未分类
Tags: No Tags
Comments: Comments Off
Published on: 2011 年 01 月 05 日

loadrunner 生成随机数的函数

使用C代码生成随机英文+数字

int itera_num,rand_num,i;
char StrTable[]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
char i_name[24]="";
char i_data[50]="";
char i_data2[24]="";
itera_num=rand()%24;
for (i=0;i<=itera_num;i++){
rand_num=rand()%62;
strncat(i_name,StrTable+rand_num,1);}
itera_num=rand()%50;
for(i=0;i<=itera_num;i++){
rand_num=rand()%62;
strncat(i_data,StrTable+rand_num,1);}
i=rand()%strlen(i_data)+1;
strncat(i_data2,i_data,i);
lr_save_string(i_name,"i_name_value");
lr_save_string(i_data,"i_data_value");
lr_save_string(i_data2,"i_data2_value");

参看:http://boyqqq.spaces.live.com/blog/cns!D6AA33352019FC3E!149.entry?wa=wsignin1.0&sa=314044507

使用loadrunner自带的函数random number生成随机数字

1、在参数表(Parameter List)中新建一个参数(Parameter),命名为"num"
2、选择参数类型(Parameter type)为随机数(Random Number),
3、选择参数范围(Parameter range)为最小为1,最大为99999999
4、在随机数格式(Number format)里选择“%08lu”
然后引用类似为:
web_sumbit_data(
……
……
"card_id=0436000{num}";
LAST);

当然也可以多个随机参数一并合成一个

这时候使用就变成了

web_sumbit_data(
……
……
"card_id=0436{num1}{num}";
LAST);

image

更详细的可以参看:

http://www.51testing.com/?uid-6343-action-viewspace-itemid-19789

选择不同的 Update value on 对应的执行效果:

image

网站的功能测试

Categories: 未分类
Comments: Comments Off
Published on: 2010 年 08 月 20 日

当需求无法稳定,功能一直在变化时,项目的测试也将变得非常复杂。由于不稳定,测试的重用性会很差,一些通过录制功能进行的自动化测试很不适合出现在这个阶段,写详细的Test Case也不适合。

有种说法网站永远都是Beta版,这其实就是说网站需要频繁的微调,用现在时髦的词,就是微创新。网站的开发初期,上面提到的一些测试方法都是不合适的。

但我们又要保证质量,如何保证呢?

昨天跟 Ethos 的一个测试专家和津驰速信的王总讨论到这个问题,当时突然灵光一闪,既然由于不稳定性导致很多测试方法不适用,那我们就转个思路,从测试的人上下手,提高测试人员的整体素质,继而保证测试的覆盖率。

如何提高测试人员的整体素质呢?我想到的一个简单办法就是资深的测试人员找一个典型的案例,用头脑风暴的方式组织大家对这个测试需求做一次头脑风暴。

头脑风暴的主题就是这个典型的场景需要做哪些测试,才能比较好的提高测试的覆盖率,才能保证一个优秀的产品(注意不是0 bug的产品)。通过提高人的直觉能力,来提高测试的覆盖率。需要提醒的是这个头脑风暴是需要有资深测试人员引导的,这样才能引导大家去讨论对网站来说,最重要的一些应该覆盖到的测试点,而不是丢了西瓜,抓了芝麻。

几次头脑风波后,会让刚刚开始学习测试的人员很快的入门,并基本上可以象一个老手那样的思考测试的问题。能够直觉知道那些是应该重点测试的,那些是可以忽略测试的。这样测试才能在成本和覆盖率上做到很好的兼顾。

小结:

当项目不稳定,需求不断变化时,成本和结果兼顾最好的测试方法就是提高人员对测试的把控能力,即可以直觉知道哪里需重点测试,哪里不需要。而这个提高的方法就是可控的头脑风波。

推荐发博客的工具:ScribeFire

Categories: 未分类
Comments: Comments Off
Published on: 2010 年 07 月 10 日

我的 ubuntu 升级到10.04后,bilbo 也改名成 blogilo 了,不知道为何 metablogapi 的发表总有问题,很是郁闷,折腾了很久也没有搞定。
现在我不用它了,改用 ScribeFire 了
homepage: http://www.scribefire.com/
Scribefire 是我目前在ubuntu下最喜欢的一款写博工具。这是一款以firefox扩展插件形式发布的写博程序。Scribefire功能是相当强大的,常用的编辑功能,该有的都有了,日志编辑、发布、修改、删除、注解、多媒体,支持离线写作和编辑、所见即所得写作,还支持TAG,在浏览网页的时候,看到一些好的文字,可以在通过firefox中的右键菜单,直接将文字发布到自己的博客中去。Scribefre添加站点的时候,能自动侦测API协议文件,这样就免去了不用知道这个博客用了什么程序接口也能轻松设置连接博客。Scribefire目前支持Blogger、LiveJournal、MetaBlogAPI(包括 WordPress,Drupal,和Windows Live Spaces)、Jeeran、Performancing、MovableType、Textpattem、Roller。

A potentially dangerous Request.Path value was detected from the client 异常

Categories: 未分类
Comments: Comments Off
Published on: 2010 年 06 月 29 日

我们在ASP.net 4.0 中使用URL导向后, 我们在访问类似如下的地址时 http://wz.csdn.net/yanjinde77/一个面试题!********/,就会报错误: 

A potentially dangerous Request.Path value was detected from the client

at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()  

at System.Web.HttpApplication.ValidateRequestExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()  

at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

这是因为上述地址中有*这个特殊字符存在。

如果你想不让ASP.net 替你拦截这些特殊字符,你需要设置如下Web.config的节:

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<httpRuntime requestPathInvalidCharacters="" />
</system.web>
</configuration>

注意其中的requestPathInvalidCharacters 它是一个以逗号分隔的无效字符列表。不设置它时,它默认的无效字符集(以,分割)是后面7个:<,>,*,%,&,:,\

即,不设置这个属性,默认就是如下设置:

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<httpRuntime requestPathInvalidCharacters="&lt;,&gt;,*,%,:,&amp;,\" />
</system.web>
</configuration>

如果你想这些字符全部不受限制,就应该设置 requestPathInvalidCharacters="" , 如果是部分字符受限制,部分字符不受限制,就需要在 requestPathInvalidCharacters 中设置需要受限制的字符,不受限制的不用设置。

 

参考资料:

Experiments in Wackiness: Allowing percents, angle-brackets, and other naughty things in the ASP.NET/IIS Request URL

http://www.budoou.com/article/981320/

非域,非匿名用户访问远程企业服务的详细步骤

Categories: 未分类
Comments: Comments Off
Published on: 2010 年 06 月 02 日

上篇博客我提到了非域,非匿名用户访问远程企业服务的关键就是在两台机子上建立一个用户名和密码完全一样的账户。然后配置ASP.net启用账号模拟,使用这个新加的账号来模拟。下面就是关于这部分的详细截图说明。

假设服务器a为企业服务主服务器, 服务器b为使用该企业服务的代理,同时b服务器上有一个ASP.net 的站点。

在服务器a上新建用户 complus , 同时这个用户属于: Distributed COM Users  用户组, 如下图所示。

image

我们只需要给这个用户赋予 Distributed COM Users  用户组,其他权限组均不需要。

在服务器 b 上建立一个同样的 complus  用户,密码跟 b 服务器上的完全一致。 注意这里 complus  只需要属于 IIS_WPG  用户组。

image

修改服务器 b 上 asp.net 站点的 Web.config 文件:

<system.web>
<identity impersonate="true" userName="complus" password="*****" />
</system.web>

完成上述设置后,  非域,非匿名用户访问远程企业服务的设置就完成了。

如果还不能正常访问,报 Access is denied  , 看看企业服务的远程激活这类设置是否打开了。这部分在我之前的博客中有多次提到,就不再累述了。

参考资料:

identity 元素(ASP.NET 设置架构)

http://msdn.microsoft.com/zh-cn/library/72wdk8cc.aspx

COM+ with ASP.NET

http://www.dotnet247.com/247reference/message.aspx?vote=86f67a1b-c961-4229-84c6-4c1b9ecc818a&id=128688&threadid=373882

调用远程的企业服务的安全问题

Categories: 未分类
Comments: Comments Off
Published on: 2010 年 06 月 02 日

Windows 的安全机制规定:接收远程的com+调用的时候,会验证这个调用的权限。如果权限不够就出现经典的“拒绝访问”错误。 解决这个问题已知访问方式有:

  • 匿名访问;简单来说就是在应用服务器(简称AP)上启用Guest账户,并且设置Guest具有激活和访问COM+的权限。这条路是可行,不过安全性不能得到保证。
  • 客户端电脑的登录用户和密码和AP上的一个用户一致,并且这个用户在AP上也具有相应的访问COM+的权限。这种方式要比第一种好一些,但是哪个单位的IT系统会是这种样子呢。肯定是每台机器都有自己的帐户密码。这个方式也不好。注:这种方式在不需要发布客户端软件到诺干多的机器上的时候也是可行的,比如访问COM+ 的是webServer.
  • 在域管理的网络环境中,同样可以实现,但是有个问题,如果您的客户不愿意改造成域环境呢。所以这种方法也是有局限性的。

下面就来一一详细演示:

匿名访问的设置:

我们在应用服务器(AP)上做下面三个设置,之后就可以启用企业服务的远程匿名访问功能。

1、启用Guest用户,我们可以通过: 计算机管理 –> 系统工具 –> 本地用户和组 把 Guest 用户起用,如下图所示:把 Account is disabled 前面的勾去掉:

image

2、配置企业服务的安全设置,我们需要修改调用的身份验证级别为无,模拟级别:匿名。

image

3、修改Com+的全局设置,允许 Everyone 有远程启动,远程激活的权限如下图:我们在 组件服务中,选择组件服务-> 计算机 –> 我的电脑 上右键菜单中选择属性,就可以打开下面设置页面:

image

然后我们在客户端,就可以简单的安装企业服务代理,再用asp.net 来通过企业服务代理来请求应用服务器上的企业服务了。

 

 

基于域的远程企业服务调用

如果是域服务器的话,很多设置已经是默认设置了,我们只需要简单的做上面的第三步,即允许 Everyone 有远程启动,远程激活的权限。

image

 

无域的远程企业服务调用

这时候的关键就是要建立一个账户,在服务器和客户端机子上用户名和密码都完全一致。

然后在服务器和客户端给予这个账号必要的操作权限。这里简单的以 administrator 账户为例。

我们在 web.config 中再打开模拟设置,类似如下即可:

<identity impersonate="true" userName="administrator" password="12345" />

 

设置权限时,必须确保“启动和激活权限”对话框的“组或用户名”列表中包括 SYSTEM,且允许 SYSTEM 具有启动权限。SYSTEM 隐含包括在 Everyone 组中。但是,出于安全原因,建议您不要对 Everyone 组启用启动权限。

 

参考资料:

部署分布式 Com+
http://blog.joycode.com/ghj/archive/2006/10/24/28028.aspx

非匿名方式访问远程的com+
http://blog.csdn.net/looyo/archive/2007/07/27/1711546.aspx

Access is denied when calling a remote serviced component (framework 1.1->1.0 issue)
http://www.keyongtech.com/501832-access-is-denied-when-calling

Error instantiating a COM+ proxy
http://www.issociate.de/board/post/293611/Error_instantiating_a_COM+_proxy.html

远程调用com+组件问题
http://topic.csdn.net/u/20071023/19/3d73c0f0-0de4-4463-b3ef-e00b25c3789e.html

设置计算机范围启动和激活权限
http://technet.microsoft.com/zh-cn/library/cc771689.aspx

以远程计算机上的用户身份访问Com+应用
http://school.cnd8.com/delphi/jiaocheng/7002.htm

配置 COM+ 服务器对象的启动权限
http://technet.microsoft.com/zh-cn/library/cc778126(WS.10).aspx

基于COM+技术的安全性研究
http://www.qqread.com/data-structure/f206773.html

设置管理安全性
http://technet.microsoft.com/zh-cn/library/cc755073.aspx

COM+在win2003+IIS+MSSQL环境下的部署步骤
http://blog.csdn.net/xieyunc/archive/2009/04/30/4140619.aspx

第 10 章 – Web 服务安全性
http://ww
w.microsoft.com/china/technet/security/guidance/secmod10.mspx#EHCAE

COM+ 管理:了解组件服务管理工具
http://docs.huihoo.com/com/com_pl/index.html

COM(Component Object Model)
http://docs.huihoo.com/com/index.html

Error instantiating a COM+ proxy
http://www.issociate.de/board/post/293611/Error_instantiating_a_COM+_proxy.html

asp, Error instantiating a COM+ proxy
http://asp.itgroups.info/28/5/thread-2086552.html

"General access denied error" under IIS accessing remote component
http://www.issociate.de/board/goto/703185/%22General_access_denied_error%22_under_IIS_accessing_remote_component.html

ASP.NET 中的进程和请求标识
http://support.microsoft.com/kb/317012/zh-cn

COM+ with ASP.NET
http://www.dotnet247.com/247reference/message.aspx?vote=86f67a1b-c961-4229-84c6-4c1b9ecc818a&id=128688&threadid=373882

COM+ with ASP.NET
http://www.dotnet247.com/247reference/msgs/25/128688.aspx

Windows 2003 ASP and COM+ Proxy
http://www.adminvc.com/bbsid-326865-9.html

未能加载文件或程序集“****”或它的某一个依赖项的一种情况

Categories: 未分类
Comments: Comments Off
Published on: 2010 年 05 月 27 日

昨天碰到了一个异常:未能加载文件或程序集“*********”或它的某一个依赖项。拒绝访问

但是这个需要加载的文件确实存在呀,它依赖的程序集也是存在,

最后用 FileMon 去分析,发现是目录和文件权限的问题

正常情况应该是下图:

image

但是,我这里成了下面的情况,这就导致了未能加载文件或程序集“****”或它的某一个依赖项的情况。

image

SQL Server 数据格式修改时,没有保存按钮的情况解决

Categories: 未分类
Comments: Comments Off
Published on: 2010 年 05 月 26 日

如果你使用的是 SQL Server 2008, 当你修改数据结构后,保存时会报下图情况:

image

Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can’t be re-created or enabled the option Prevent saving changes that require the table to be re-created.

这是 SQL Server 2008 的一种自我保护,当你的修改可能导致数据表被删除并重新创建时(dropped and re-created),就会有这个提醒。

导致表被重新创建可能是以下几种情况:

  • 在表中间添加一个新列;
  • 删除列
  • 更改列为 Null 性
  • 更改列的顺序
  • 更改列的数据类型

若要不使用这个保护,需要在“工具”菜单中单击“选项”,展开“设计器”,然后单击“表设计器和数据库设计器”。 清除“阻止保存要求重新创建表的更改”复选框。

on the Tools menu, click Options, expand Designers, and then click Table and Database Designers. Select or clear the Prevent saving changes that require the table to be re-created check box.

如下图:

image

参考资料:

Save (Not Permitted) Dialog Box
http://msdn.microsoft.com/en-us/library/bb895146.aspx

.NET Framework 4.0 SDK的安装

Categories: 未分类
Comments: Comments Off
Published on: 2010 年 05 月 25 日

之前我提到 .NET Framework 4.0 GAC 部署的一些问题: .NET Framework 4.0 中如何把一个程序部署到全局应用缓存(GAC),一个解决方法就是等.NET Framework 4.0 SDK的发布。

目前 .NET Framework 4.0 SDK 已经发布了, 它是跟 Windows SDK 集成在一起发布的。即:Windows SDK for Windows 7和.NET Framework 4(WinSDK 7.1)。下载地址在:
http://www.microsoft.com/downloads/details.aspx?FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b&displaylang=en

在装此SDK前需要先装 .NET Framework 4.0, 下载地址在:
http://www.microsoft.com/downloads/details.aspx?familyid=0A391ABD-25C1-4FC0-919F-B21F31AB88B7&displaylang=en

我们如果只需要解决我之前提到的 GAC 的问题, 安装时候只需要选择 .NET Development 这一项,其他不用安装,如下图所示:

image 

默认选择安装完成后,在 C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools 目录下就有 gacutil.exe 了。

mmseg4j 中文分词器的一些简介整理

Categories: 未分类
Comments: Comments Off
Published on: 2010 年 05 月 14 日

在 lucene 中,我们是使用 IndexWriter 调用 Analyzer 将文章切成以词为单位的 Stream,然后生成索引的。lucene 内建的分词器很多,比如:按空白字符分词的WhitespaceAnalyzer,添加了stopword过滤的StopAnalyzer,以及最常用的是StandardAnalyzer。这些自带的分词器对中文支持多不好,我觉得比较好的中文分词器是 mmseg4j

 

mmseg4j 是用 Chih-Hao Tsai 的 MMSeg 算法实现的中文分词器。并实现了 lucene 的 analyzer 和 solr 的 TokenizerFactory 以方便在 Lucene 和 Solr 中使用。

 

对 lucene  来说 ,mmseg4j 有以下四个 analyzer:SimpleAnalyzer、ComplexAnalyzer、MaxWordAnalyzer、MMSegAnalyzer。前面三个都是继承 MMSegAnalyzer,MMSegAnalyzer 默认使用 max-word 方式分词。

 

上面四个分次类涉及到了三个分词方法:Simple、Complex、max-word。MMSeg 算法有两种分词方法:Simple 和 Complex,都是基于正向最大匹配。mmseg4j  1.6 版开始在 Complex 算法基础上实现了最多分词(max-word)。类似如下的分词就是 max-word 分词:“很好听” -> "很好|好听"; “中华人民共和国” -> "中华|华人|共和|国"; “中国人民银行” -> "中国|人民|银行"。

 

mmseg4j 的词库是使用 utf-8 格式的,由于 utf-8 文件有带与不带 BOM 之分,建议词库第一行为空行或为无 BOM 格式的 utf-8 文件。

 

jar 中已有了,只有你对这个不满意时才需要替换的词库文件:

  • data/chars.dic 是单字与语料中的频率,一般不用改动,mmseg4j 1.5版本后已经加到mmseg4j的jar里了,我们不需要关心它,当然你在词库目录放这个文件可以覆盖它。
  • data/units.dic 是单字的单位,默认读jar包里的,你也可以自定义覆盖它,这功能是试行,如果不喜欢它,可以空的units.dic文件(放到你的词库目录下)覆盖它。

词库文件:

  • data/words.dic 是词库文件,一行一词,当然你也可以使用自己的,1.5版本使用 sogou 词库,1.0的版本是用 rmmseg 带的词库。 一般我们使用这个作为系统自带词库。分词效果当然还与词库有关,sogou 的词库是统计得出,有些高频的单字组合也成了词,如“我们的”。如果还要提高 mmseg4j 的分词效果,还要在整理下词库。
  • data/wordsxxx.dic 1.6版支持多个词库文件,data 目录(或你定义的目录)下读到"words"前缀且".dic"为后缀的文件。如:data/words-my.dic。 一般我们在这里里面,把这个当成我们自身特色的词库。

停止词

  • mmseg4j 没有加任何 stopword,如果需要 stopword  ,需要用户自己实现。作者认为:这东西留给使用者自己加,因为作者不认为加 stopword 是好的方法。如音乐搜索,给加上 the,this……,还能找到歌曲?

 

参考资料:

mmseg4j 作者的博客
http://blog.chenlb.com

中文分词 mmseg4j 在 lucene 中的使用示例
http://blog.chenlb.com/2009/04/use-chinese-segment-mmseg4j-in-lucene-demo.html

Lucene中文分词
http://www.fallever.com/blog/jeff/tag/49/

«page 1 of 71


Welcome , today is 星期一, 2017 年 06 月 26 日