多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

WinRunner编码规范-自动化测试

更新时间:2022-06-02 09:30:52 作者:多测师 浏览:96

  1.路径不能写死

  从一台机器拷贝到另一台机器上之后,WinRunner的脚本需要能够正常的运行。测试脚本所依赖的所有的东东(gui maps, text files, compiled modules, dll’s)都要和测试脚本有一样的父级目录。

  例外:

  如果确实有需要的话,指向K drive中的永久文件的路径可以写死。(警告:当脚本在不同的机器上运行,读取存放在K drive中的同样的文件的时候,有可能会出现问题。)

  错误的示范:

  reload("C:\\WR_TESTS\\Acceptance_6\\acceptance_functions");

  正确的示范:

  reload(getvar("testname") & "\\..\acceptance_functions");

WinRunner编码规范-自动化测试

  2.采用缩进格式增强代码的可读性

  错误的示范:

  for(counter = count - 24; counter < count - 1; counter++)

  {

  list_get_item("ListBox",counter,item);

  str = str & item & "\r\n";

  }

  正确的示范一:

  for(counter = count - 24; counter < count - 1; counter++)

  {

  list_get_item("ListBox",counter,item);

  str = str & item & "\r\n";

  }

  正确的示范二:

  for(counter = count - 24; counter < count - 1; counter++){

  list_get_item("ListBox",counter,item);

  str = str & item & "\r\n";

  }

  3.尽量避免将测试外部环境的依赖写死 不要将一些随着外部测试环境的变化而改变的信息写死。包括有:安装目录、DSN名、数据库服务器名、数据库用户名、数据库密码。最好在测试脚本的开始就将这些东东定义为变量,这样你就没有必要在环境变化后,在整个脚本中作多次的修改,只要改一个地方就好了。

  错误的示范一:

  set_window("SQL Server Login",10);

  edit_set("Login ID:", "sa");

  edit_type("Password:", "password");

  正确的示范一:

  db_username = "sa";

  db_password = "password";

  set_window("SQL Server Login",10);

  edit_set("Login ID:", db_username);

  edit_type("Password:", db_password);

  错误的示范二:

  invoke_application("C:\\iAvenue\\Windows\\UAdmin.exe","","c:\\Power_db",SW_SHOW);

  正确的示范二:

  install_dir = "c:\\iAvenue\\Windows";

  invoke_application(install_dir & "\\UAdmin.exe","",getvar("testname") & "\\..\Power_db",SW_SHOW);

  4.将文本识别作为你的最后一个选择

  文本识别将占用大量的内存,而且还不稳定,同时在不同的操作系统可能会出现不同的结果。所以只有在没有其他的方法得到对象的信息的情况下才使用这种方式。不幸的是,这种情况经常发生,特别是当有对象不能被识别的时候。在下面的例子中,我们假设“Assign Date”是类:edit。

  错误的示范:

  obj_get_text("Assign Date", text);

  正确的示范:

  edit_get_text("Assign Date",text);

  5.不要使用额外的wait语句;在需要等待的时候,尽量使用同步函数 错误的示范:

  wait(40);

  正确的示范:

  statusbar_wait_info("Status Bar","value","Sites processed = 20",40);

  6.不要将report_msg作为tl_step的替代

  在寻找一个错误的原因的时候,没有人愿意看测试脚本中的每一行语句的测试结果。如果测试结果中不是红就是绿的话,就更加清晰明了了。所以使用tl_step标识失败的步骤还是挺不错的。

  错误的示范:

  if(win_exists("Active Information Manager",1) == 0)

  {

  set_window("Active Information Manager", 1);

  obj_get_text("AfxWnd42", text);

  my_gui_checkpoint(text,"AIM.log");

  }

  else

  report_msg("AIM failure! Window absent at startup");

  正确的示范:

  if(win_exists("Active Information Manager",1) == 0)

  {

  set_window("Active Information Manager", 1);

  obj_get_text("AfxWnd42", text);

  my_gui_checkpoint(text,"AIM.log");

  }

  else

  tl_step("AimReportRuns",FAIL,"AIM window absent at startup");

  7.通过使用正则表达式避免将多个窗口实例放在一个gui map文件中

  8.添加注释以增强脚本的可读性 #Please add comments

  以上内容为大家介绍了自动化测试中的WinRunner编码规范,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部