川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > IT资讯

如何使用LoadRunner对Webservice 进行接口测试

作者:川石学院 日期:2021-05-24 16:37:03 点击数:

  我们今天开始学习如何使用LoadRunner对Webservice 进行接口测试,一般其实很多不会使用LoadRunner来做接口测试,因为现在市场上接口测试的工具也很多,例如soapui、postman等。但其实LoadRunner同样也可以用来做接口测试。下面我们就详细的介绍使用LoadRunner如何对Webservice进行接口测试。

  下面将以http://fy.webxml.com.cn/webservices/EnglishChinese.asmx这个WEB服务为例介绍Webservice接口测试。该系统是一个中英文双向翻译的WEB服务。

  一、选择Web Services协议

  单击【New Script】按钮,在弹出的【New Virtual User】对话框中,选择Web Services协议,如图15-1所示。  

如何使用LoadRunner对Webservice 进行接口测试(图1)

  图15-1 选择Web Services协议

  二、选择Manage Services管理待测试的服务

  在主界面单击【Manage Services】按钮,会弹出一个【Manage Services】对话框,如图15-2所示。在这个对话框中可以选择我们待测试的服务。  

如何使用LoadRunner对Webservice 进行接口测试(图2)

  图15-2 Manage Services对话框

  三、Import Services导入服务

  在弹出的【Manage Services】对话框中,单击【Import Service】按钮,会弹出 【Import Service】对话框,如图15-3所示,在该对话框中来设置待测试的服务。  

如何使用LoadRunner对Webservice 进行接口测试(图3)

  图15-3 Import Service导入服务

  导入服务的方式有四种:URL、File、UDDI和Quality Center。但我们一般只会用到两种即URL和File两种,下面我们来阐述一下如何使用URL和File两种方式如何来导入服务。

  第一:URL方式

  如果选择URL方式时,在下面的文本框中输入WEB服务的URL地址,但需要注意的是必须在后面加上“?wsdl”,如我们测试的服务地址为http://fy.webxml.com.cn/webservices/EnglishChinese.asmx,那么填入到文本框的地址实际上应该为http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl,如图15-4所示。因为我们测试的对象是Web Services的服务,他是一个类似XML格式写一个文件,所以我们在加载服务时,不能写URL地址,一定得在后面加上“?wsdl”,否则添加服务就会失败。 

如何使用LoadRunner对Webservice 进行接口测试(图4)

  图15-4 URL方式添加WEB服务

  第二:File方式

  导入服务时也可以使用File方式来导入,如果使用文件导入服务时需要注意,在使用File方式导入服务之前,需求将内容另存为后缀名为“.wsdl”的文件,使用浏览器打开我们要测试的服务(http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl,注意是包含“?wsdl”的这个wsdl的文件),然后再点击另存为,但别存为时一定得注意,另存为后缀名为“.wsdl” 的文件。再在【Import Service】对话框中选择需要导入的文件,如图15-5所示。  

如何使用LoadRunner对Webservice 进行接口测试(图5)

  图15-5 File方式添加WEB服务

  当导入成功后可以在【Operations】标签页中看到该服务所包含的所有方法,如图15-6所示。  

如何使用LoadRunner对Webservice 进行接口测试(图6)

  图15-6 查看导入成功的方法或操作

  这些方法与打开http://fy.webxml.com.cn/webservices/EnglishChinese.asmx这个URL地址所看的方法是一样的,打开该URL地址看的方法,如图15-7所示。  

如何使用LoadRunner对Webservice 进行接口测试(图7)

  图15-7 查看WEB站点的方法是否与导入的一致

  在【Operations】标签页中我们看到每种操作或方法都有两个不同的端口名,分别为:EnglishChinsesSoap和EnglishChinsesSoap12两种,这两种端口名是表示支持Soap协议的两个版本。

  四、Add Service Call添加服务调用

  导入服务成功后,接下来就得确定要测试的对象,因为每个服务都可能有很多不同的操作,那么我们要测试那个操作呢?这就是这个步骤要做的事情。

  单击【Add Service Call】按钮,弹出【New Add Service Call】对话框,如图15-7所示。  

如何使用LoadRunner对Webservice 进行接口测试(图8)

  图15-7 添加本次要测试的操作或方法

  在弹出的【New Add Service Call】对话框中,有以下几个选项需要注意:

  Service:表示Web Services的服务器名。

  Port Name:表示端口名。

  Operation:表示操作或方法名,即该Web Services所包含的方法或操作名,也是做接口测试时待测试的对象。在这个下拉列表框中选择我们要测试的方法或操作。

  以测试TranslatorString操作为例,得在Operation下拉列表框中选择TranslatorString操作。该操作是中英文双向翻译(基本)String(),输入参数:wordKey = 单词; 返回数据:一维字符串数组 String[]。

  选中操作之后,可以在左边看到该操作输入和输出的相关数据,当然还有可以设置SOAP Header,但一般我们只要设置输入和输出参数即可。

  输入的参数就是该操作在调用过程中所需要输入的实参,所谓接口测试其本身就是测试该操作与外界打交道的内容,这就相当于函数,一个函数与外界打交道的只有输入时的实参和输出的结果,并没有其它的内容,所以输入的参数就相当于函数调用中的实参,其意思是一样的。点击【Input Arguments】就可以看到需要输入的参数情况,在这个实例中只需要输入一个参数(关于到底需求多少个参数,这完全取决于在函数定义时所需要输入的形参个数),形参名叫“wordKey”,选中“Include argument in”选项,在下面选择“Value”选项,在该文本框中输入测试时具体的实参,这里我们以输入“Hello为例,即测试的数据为“Heloo”,如图15-8所示。当然有人就会说那如果需要参数化怎么做呢?这里可以直接点【ABC】按钮来参数化,后面我们还会来参数如何参数化。  

如何使用LoadRunner对Webservice 进行接口测试(图9)

  图15-8 设置输入参数

  点击【Ouput Arguments】可以设置输出结果的相关信息。选中“Save returned value in param”,在这里可以设置参数名,这个参数化可以随便设置,用于保存输出结果,如图15-9所示。这个参数主要用于保存该操作的返回值,就相当于函数的返回值一样。  

如何使用LoadRunner对Webservice 进行接口测试(图10)

  图15-9 设置输出参数

  设置完成后,LoadRunner会生成一段代码插入在Action部分,代码如下:

  web_service_call( "StepName=TranslatorString_102",

  "SOAPMethod=EnglishChinese|EnglishChineseSoap|TranslatorString",

  "ResponseParam=response",

  "Service=EnglishChinese",

  "ExpectedResponse=SoapResult",

  "Snapshot=t1525517692.inf",

  BEGIN_ARGUMENTS,

  "wordKey=Hello",

  END_ARGUMENTS,

  BEGIN_RESULT,

  "TranslatorStringResult/*[1]=Param_string",

  END_RESULT,

  LAST);

  五、调试脚本

  在Action里面其实只生成了一个函数(web_service_call),其实我们对 Web Services进行接口测试时,只是通过这个函数来发送请求的,也就是说如果对这个函数很熟悉的话,根本就不会上面几个步骤来折腾,可以直接写web_service_call这个函数来达到目的。

  当代码生成后,接下来就得调试代码,检查结果是否正确,在调试代码之前,需要先在【Run-time Settings】对话框中设置一下“Log”的属性,需要将日志文件的格式设置为“Extended log->Parameter substitution”,这样可以在回放日志的地方将参数提交相关的日志都可以打印出来,设置好日志格式之后就可以回放脚本。回放后的日志文件内容如下:

  Virtual User Script started at : 2018-05-05 19:11:43

  Starting action vuser_init.

  Web Services replay version 11.0.0 for WINXP; Toolkit: ".Net"; build 8859

  Run-Time Settings file: "C:\Documents and Settings\Administrator\Local Settings\Temp\noname120\\default.cfg"

  Vuser directory: "C:\Documents and Settings\Administrator\Local Settings\Temp\noname120"

  Vuser output directory: "C:\Documents and Settings\Administrator\Local Settings\Temp\noname120\"

  LOCAL start date/time: 2018-05-05 19:11:43

  Ending action vuser_init.

  Running Vuser...

  Starting iteration 1.

  Starting action Action.

  Action.c(3): Web service call "TranslatorString_102" started

  Action.c(3): Notify: Saving Parameter "TranslatorString_102_Response = hello'hel?u, he'l?uint.(见面打招呼或打电话用语)喂,哈罗1059.mp3".

  Action.c(3): Notify: Saving Parameter "response = hello'hel蓹u, he'l蓹uint.锛堣闈㈡墦鎷涘懠鎴栨墦鐢佃瘽鐢ㄨ锛夊杺,鍝堢綏1059.mp3".

  Action.c(3): Notify: Saving Parameter "Param_string = hello".

  Action.c(3): Web service call "TranslatorString_102" was successful

  Ending action Action.

  Ending iteration 1.

  Ending Vuser...

  Starting action vuser_end.

  Ending action vuser_end.

  Vuser Terminated.

  查看回放日志时,需要检查TranslatorString_102_Response、response和Param_string这三个参数的值是否正确,那么如何判断这三个参数返回出来的值是否正确呢?可以进入Web Service的系统中进行手工测试,进入这个http://fy.webxml.com.cn/webservices/EnglishChinese.asmx地址单击TranslatorString操作,输入要测试的关键“Hello”,然后点“调用”就可以看到结果了,如果两次结果一样说明,测试的结果是正确的。

  六、增强脚本

  脚本调试没问题后,应该对脚本进行增强,那么这里增强脚本有两个方面要处理:一是参数化;二是设置检查点;

  关于参数化在这里就不详细介绍了,在6.3章节中对如何参数化进了详细的介绍,那么Web Service脚本的参数化和6.3章节中讲的策略是一致的。

  脚本检查点是必须的,一般情况每个脚本都会设置相对应的检查点,用于检查脚本运行结果的正确性。在之前的章节中会使用web_reg_find函数来检查内容是否正确,但在这个脚本中不需要使用web_reg_find这个函数来检查,因为待检查的内容就在上面所讲的那几个参数中,不用到缓存中去查询我们需要的结果,也即待检查的内容就在一个变量中,所以这个时候只要比较变量中的值是不是我们需要的,所以在这里使用strstr函数来检查就可以。

  strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。

  增强后的脚本代码如下:

  web_service_call( "StepName=TranslatorString_101",

  "SOAPMethod=EnglishChinese|EnglishChineseSoap|TranslatorString",

  "ResponseParam=response",

  "Service=EnglishChinese",

  "ExpectedResponse=SoapResult",

  "Snapshot=t1523427287.inf",

  BEGIN_ARGUMENTS,

  "wordKey={keyword}",

  END_ARGUMENTS,

  BEGIN_RESULT,

  "TranslatorStringResult/*[1]=Param_translator",

  END_RESULT,

  LAST);

  if(strstr(lr_eval_string("{Param_translator}"),lr_eval_string("{keyword}")) == NULL)

  {

  lr_error_message("FAIL");

  }

  else

  {

  lr_error_message("PASS");

  }

  return 0;

  脚本增强完成后,那么这个脚本就可以算是开发好了。

       附:川石信息全国校区最新开班时间,课程资料获取13691729932(微信同号)。

如何使用LoadRunner对Webservice 进行接口测试(图11)


相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2021-05-24 16:37:03
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2021-05-24 16:37:03
  • 国外的月亮也不一定比国内测试猿的年薪美~2021-05-24 16:37:03
  • 建筑工程专业朱同学成功转行为软件测试人!2021-05-24 16:37:03
  • 财务管理专业转行软件测试月薪甩会计几条街!2021-05-24 16:37:03
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2021-05-24 16:37:03
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2021-05-24 16:37:03
  • 文科生转行软件测试照样拿下高薪15K!2021-05-24 16:37:03
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2021-05-24 16:37:03
  • 毕业1年,迷茫的他最终选择转行软件测试2021-05-24 16:37:03