关联函数是一个查找函数,即是从HTML文件内容中查找需要的值,并将其保存在一个变量或数组中。换一个角度看,关联函数不单单可以匹配一些变化的值,同样可以匹配一些固定的内容,并将其保存到一个数据组,供后续业务使用,也即对关联函数进行扩展使用,在处理事务中这种方式经常用到。

  实例:以订票为例,假设要实现这样的事务,选择好出发城市和到达城市后,在选择航班时,需要选择票价最便宜的航班

  实现思路:首先使用关联函数读取HTML代码中票价和航班号,分别将两部分的数据保存在不同的数组中;接着比较票价,选择找到票价最低的是数组中的第几个元素,即最便宜机票所在数据的下标;最后将该下标的值对应地读出航班号,就是最便宜的航班。

  完整代码如下:

【注:还没运行成功,主要是不懂代码函数的运用】

  1. Action()
  2. {
  3. //录制订票脚本,为了练习关联技术的经典使用
  4. web_url("WebTours",
  5. "URL=http://127.0.0.1:1080/WebTours",
  6. "Resource=0",
  7. "RecContentType=text/html",
  8. "Referer=",
  9. "Snapshot=t2.inf",
  10. "Mode=HTTP",
  11. LAST);
  12.  
  13. web_url("header.html",
  14. "URL=http://127.0.0.1:1080/WebTours/header.html",
  15. "Resource=0",
  16. "RecContentType=text/html",
  17. "Referer=http://127.0.0.1:1080/WebTours/",
  18. "Snapshot=t4.inf",
  19. "Mode=HTTP",
  20. LAST);
  21.  
  22. web_concurrent_start(NULL);
  23.  
  24. web_url("hp_logo.png",
  25. "URL=http://127.0.0.1:1080/WebTours/images/hp_logo.png",
  26. "Resource=1",
  27. "RecContentType=image/png",
  28. "Referer=http://127.0.0.1:1080/WebTours/header.html",
  29. "Snapshot=t5.inf",
  30. LAST);
  31.  
  32. web_url("webtours.png",
  33. "URL=http://127.0.0.1:1080/WebTours/images/webtours.png",
  34. "Resource=0",
  35. "RecContentType=text/html",
  36. "Referer=http://127.0.0.1:1080/WebTours/header.html",
  37. "Mode=HTTP",
  38. LAST);
  39.  
  40. web_concurrent_end(NULL);
  41.  
  42. web_url("welcome.pl",
  43. "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true",
  44. "Resource=0",
  45. "RecContentType=text/html",
  46. "Referer=http://127.0.0.1:1080/WebTours/",
  47. "Snapshot=t6.inf",
  48. "Mode=HTTP",
  49. LAST);
  50.  
  51. web_concurrent_start(NULL);
  52.  
  53. web_url("nav.pl",
  54. "URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
  55. "Resource=0",
  56. "RecContentType=text/html",
  57. "Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true",
  58. "Snapshot=t7.inf",
  59. "Mode=HTTP",
  60. LAST);
  61.  
  62. web_url("home.html",
  63. "URL=http://127.0.0.1:1080/WebTours/home.html",
  64. "Resource=0",
  65. "RecContentType=text/html",
  66. "Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true",
  67. "Snapshot=t8.inf",
  68. "Mode=HTTP",
  69. LAST);
  70.  
  71. web_concurrent_end(NULL);
  72.  
  73. web_url("mer_login.gif",
  74. "URL=http://127.0.0.1:1080/WebTours/images/mer_login.gif",
  75. "Resource=1",
  76. "RecContentType=image/gif",
  77. "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
  78. "Snapshot=t9.inf",
  79. LAST);
  80.  
  81. web_concurrent_start(NULL);
  82.  
  83. web_url("8afc2fe48db9060fe1bdda2089e1d950.png",
  84. "URL=http://act.cmcmcdn.com/upload/201507/8afc2fe48db9060fe1bdda2089e1d950.png",
  85. "Resource=1",
  86. "RecContentType=image/png",
  87. "Referer=http://127.0.0.1:1080/WebTours/",
  88. "Snapshot=t10.inf",
  89. LAST);
  90.  
  91. web_url("3b491068507d8f85ea7b35d756da7215.png",
  92. "URL=http://act.cmcmcdn.com/upload/201507/3b491068507d8f85ea7b35d756da7215.png",
  93. "Resource=1",
  94. "RecContentType=image/png",
  95. "Referer=http://127.0.0.1:1080/WebTours/",
  96. "Snapshot=t11.inf",
  97. LAST);
  98.  
  99. web_concurrent_end(NULL);
  100.  
  101. lr_start_transaction("登录");
  102.  
  103. lr_think_time();
  104.  
  105. web_submit_data("login.pl",
  106. "Action=http://127.0.0.1:1080/WebTours/login.pl",
  107. "Method=POST",
  108. "RecContentType=text/html",
  109. "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
  110. "Snapshot=t12.inf",
  111. "Mode=HTTP",
  112. ITEMDATA,
  113. "Name=userSession", "Value=120844.899311462zcVfQfQpfAiDDDDDDHcQfpHfHAf", ENDITEM,
  114. "Name=username", "Value=test1", ENDITEM,
  115. "Name=password", "Value=test1", ENDITEM,
  116. "Name=JSFormSubmit", "Value=off", ENDITEM,
  117. "Name=login.x", "Value=36", ENDITEM,
  118. "Name=login.y", "Value=15", ENDITEM,
  119. LAST);
  120.  
  121. web_concurrent_start(NULL);
  122.  
  123. web_url("nav.pl_2",
  124. "URL=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
  125. "Resource=0",
  126. "RecContentType=text/html",
  127. "Referer=http://127.0.0.1:1080/WebTours/login.pl",
  128. "Snapshot=t13.inf",
  129. "Mode=HTTP",
  130. LAST);
  131.  
  132. web_url("login.pl_2",
  133. "URL=http://127.0.0.1:1080/WebTours/login.pl?intro=true",
  134. "Resource=0",
  135. "RecContentType=text/html",
  136. "Referer=http://127.0.0.1:1080/WebTours/login.pl",
  137. "Snapshot=t18.inf",
  138. "Mode=HTTP",
  139. LAST);
  140.  
  141. web_concurrent_end(NULL);
  142.  
  143. web_concurrent_start(NULL);
  144.  
  145. web_url("flights.gif",
  146. "URL=http://127.0.0.1:1080/WebTours/images/flights.gif",
  147. "Resource=1",
  148. "RecContentType=image/gif",
  149. "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
  150. "Snapshot=t14.inf",
  151. LAST);
  152.  
  153. web_url("in_home.gif",
  154. "URL=http://127.0.0.1:1080/WebTours/images/in_home.gif",
  155. "Resource=1",
  156. "RecContentType=image/gif",
  157. "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
  158. "Snapshot=t15.inf",
  159. LAST);
  160.  
  161. web_url("signoff.gif",
  162. "URL=http://127.0.0.1:1080/WebTours/images/signoff.gif",
  163. "Resource=1",
  164. "RecContentType=image/gif",
  165. "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
  166. "Snapshot=t16.inf",
  167. LAST);
  168.  
  169. web_url("itinerary.gif",
  170. "URL=http://127.0.0.1:1080/WebTours/images/itinerary.gif",
  171. "Resource=1",
  172. "RecContentType=image/gif",
  173. "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
  174. "Snapshot=t17.inf",
  175. LAST);
  176.  
  177. web_concurrent_end(NULL);
  178.  
  179. lr_end_transaction("登录", LR_AUTO);
  180.  
  181. lr_start_transaction("订票");
  182.  
  183. lr_think_time();
  184.  
  185. web_url("Search Flights Button",
  186. "URL=http://127.0.0.1:1080/WebTours/welcome.pl?page=search",
  187. "Resource=0",
  188. "RecContentType=text/html",
  189. "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
  190. "Snapshot=t19.inf",
  191. "Mode=HTTP",
  192. LAST);
  193.  
  194. web_concurrent_start(NULL);
  195.  
  196. web_url("reservations.pl",
  197. "URL=http://127.0.0.1:1080/WebTours/reservations.pl?page=welcome",
  198. "Resource=0",
  199. "RecContentType=text/html",
  200. "Referer=http://127.0.0.1:1080/WebTours/welcome.pl?page=search",
  201. "Snapshot=t20.inf",
  202. "Mode=HTTP",
  203. LAST);
  204.  
  205. web_url("nav.pl_3",
  206. "URL=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=flights",
  207. "Resource=0",
  208. "RecContentType=text/html",
  209. "Referer=http://127.0.0.1:1080/WebTours/welcome.pl?page=search",
  210. "Snapshot=t21.inf",
  211. "Mode=HTTP",
  212. LAST);
  213.  
  214. web_concurrent_end(NULL);
  215.  
  216. web_url("button_next.gif",
  217. "URL=http://127.0.0.1:1080/WebTours/images/button_next.gif",
  218. "Resource=1",
  219. "RecContentType=image/gif",
  220. "Referer=http://127.0.0.1:1080/WebTours/reservations.pl?page=welcome",
  221. "Snapshot=t22.inf",
  222. LAST);
  223.  
  224. web_concurrent_start(NULL);
  225.  
  226. web_url("in_flights.gif",
  227. "URL=http://127.0.0.1:1080/WebTours/images/in_flights.gif",
  228. "Resource=1",
  229. "RecContentType=image/gif",
  230. "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=flights",
  231. "Snapshot=t23.inf",
  232. LAST);
  233.  
  234. web_url("home.gif",
  235. "URL=http://127.0.0.1:1080/WebTours/images/home.gif",
  236. "Resource=1",
  237. "RecContentType=image/gif",
  238. "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=flights",
  239. "Snapshot=t24.inf",
  240. LAST);
  241.  
  242. web_concurrent_end(NULL);
  243.  
  244. lr_think_time();
  245. /*分析票价和航班号的左右边界值后(可通过航班信息的HTML源代码分析),在这里插入关联函数,进行关联时Ordinal的属性必须设置为all,这样才可以将所有的值匹配到,并将其保存在一个数组中。*/
  246.  
  247. //这是航班的关联函数
  248. web_reg_save_param_ex(
  249. "ParamName=fligthno",
  250. "LB=outboundFlight value=",
  251. "RB=;",
  252. "Ordinal=all",
  253. SEARCH_FILTERS,
  254. LAST);
  255.  
  256. //这是票价的关联函数
  257. web_reg_save_param_ex(
  258. "ParamName=fligthcost",
  259. "LB=center>$",
  260. "RB=</TD>",
  261. "Ordinal=all",
  262. SEARCH_FILTERS,
  263. LAST);
  264. /*设置一个标记flag来保存票价*/
  265.  
  266. //初始化最贵机票,将第一个航班的机票设置为初始化的最贵的机票
  267. max = atoi(lr_eval_string ("{wcsparam_text1_1}"));
  268. //初始化标识位,默认设置为1
  269. flagno=;
  270. //for循环所有机票
  271. for (i=;i<=atoi(lr_eval_string ("{wcsparam_text1_count}"));i++) {
  272. sprintf(cost,"{wcsparam_text1_%d}",i);
  273. //比较最前航班的机票是否大于max的值,如果大于max的值,即重新对max赋值
  274. if(atoi(lr_eval_string (cost))>max){
  275. max=atoi(lr_eval_string (cost));
  276. flagno=i;
  277. }
  278. }
  279.  
  280. /*找到最便宜的机票后,可以得到该数组的下标,那这个数组的下标所对应的航班就是票价最便宜的航班,获取航班号的代码如下:*/
  281.  
  282. //通过标识位来确定航班
  283. sprintf(flightelem,
  284. "{wcsparam_text2_%d}",
  285. flagno);
  286. lr_save_string (lr_eval_string (flightelem),
  287. "fligthno");
  288.  
  289. web_submit_data("reservations.pl_2",
  290. "Action=http://127.0.0.1:1080/WebTours/reservations.pl",
  291. "Method=POST",
  292. "RecContentType=text/html",
  293. "Referer=http://127.0.0.1:1080/WebTours/reservations.pl?page=welcome",
  294. "Snapshot=t25.inf",
  295. "Mode=HTTP",
  296. ITEMDATA,
  297. "Name=advanceDiscount", "Value=0", ENDITEM,
  298. "Name=depart", "Value=Denver", ENDITEM,
  299. "Name=departDate", "Value=04/11/2017", ENDITEM,
  300. "Name=arrive", "Value=London", ENDITEM,
  301. "Name=returnDate", "Value=04/12/2017", ENDITEM,
  302. "Name=numPassengers", "Value=1", ENDITEM,
  303. "Name=seatPref", "Value=Window", ENDITEM,
  304. "Name=seatType", "Value=First", ENDITEM,
  305. "Name=.cgifields", "Value=roundtrip", ENDITEM,
  306. "Name=.cgifields", "Value=seatType", ENDITEM,
  307. "Name=.cgifields", "Value=seatPref", ENDITEM,
  308. "Name=findFlights.x", "Value=48", ENDITEM,
  309. "Name=findFlights.y", "Value=10", ENDITEM,
  310. LAST);
  311.  
  312. lr_think_time();
  313.  
  314. /*获得最便宜的票价和航班后,即将这两部分的信息放入到提交的信息中,作为客户端的请求进行提交即可,具体代码如下*/
  315. web_submit_data("reservations.pl_3",
  316. "Action=http://127.0.0.1:1080/WebTours/reservations.pl",
  317. "Method=POST",
  318. "RecContentType=text/html",
  319. "Referer=http://127.0.0.1:1080/WebTours/reservations.pl",
  320. "Snapshot=t26.inf",
  321. "Mode=HTTP",
  322. ITEMDATA,
  323. //"Name=outboundFlight", "Value=023;519;04/11/2017", ENDITEM,
  324. "Name=outboundFlight", "Value={flightno};{flightnocost};04/11/2017", ENDITEM,
  325. "Name=numPassengers", "Value=1", ENDITEM,
  326. "Name=advanceDiscount", "Value=0", ENDITEM,
  327. "Name=seatType", "Value=First", ENDITEM,
  328. "Name=seatPref", "Value=Window", ENDITEM,
  329. "Name=reserveFlights.x", "Value=43", ENDITEM,
  330. "Name=reserveFlights.y", "Value=6", ENDITEM,
  331. LAST);
  332.  
  333. web_submit_data("reservations.pl_4",
  334. "Action=http://127.0.0.1:1080/WebTours/reservations.pl",
  335. "Method=POST",
  336. "RecContentType=text/html",
  337. "Referer=http://127.0.0.1:1080/WebTours/reservations.pl",
  338. "Snapshot=t27.inf",
  339. "Mode=HTTP",
  340. ITEMDATA,
  341. "Name=firstName", "Value=test1", ENDITEM,
  342. "Name=lastName", "Value=test1", ENDITEM,
  343. "Name=address1", "Value=", ENDITEM,
  344. "Name=address2", "Value=", ENDITEM,
  345. "Name=pass1", "Value=test1 test1", ENDITEM,
  346. "Name=creditCard", "Value=", ENDITEM,
  347. "Name=expDate", "Value=", ENDITEM,
  348. "Name=oldCCOption", "Value=", ENDITEM,
  349. "Name=numPassengers", "Value=1", ENDITEM,
  350. "Name=seatType", "Value=First", ENDITEM,
  351. "Name=seatPref", "Value=Window", ENDITEM,
  352. //"Name=outboundFlight", "Value=023;519;04/11/2017", ENDITEM,
  353. "Name=outboundFlight", "Value={flightno};{flightnocost};04/11/2017", ENDITEM,
  354. "Name=advanceDiscount", "Value=0", ENDITEM,
  355. "Name=returnFlight", "Value=", ENDITEM,
  356. "Name=JSFormSubmit", "Value=off", ENDITEM,
  357. "Name=.cgifields", "Value=saveCC", ENDITEM,
  358. "Name=buyFlights.x", "Value=48", ENDITEM,
  359. "Name=buyFlights.y", "Value=6", ENDITEM,
  360. LAST);
  361.  
  362. web_url("bookanother.gif",
  363. "URL=http://127.0.0.1:1080/WebTours/images/bookanother.gif",
  364. "Resource=1",
  365. "RecContentType=image/gif",
  366. "Referer=http://127.0.0.1:1080/WebTours/reservations.pl",
  367. "Snapshot=t28.inf",
  368. LAST);
  369.  
  370. lr_end_transaction("订票", LR_AUTO);
  371.  
  372. return ;
  373. }

附上航班信息源码:

  1. <!DOCTYPE html
  2. PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
  5. <head>
  6. <title>Flight Selections</title>
  7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  8. </head>
  9. <body bgcolor="#E0E7F1">
  10. <style>blockquote {font-family: tahoma; font-size : 10pt}H1 {font-family: tahoma; font-size : 22pt; color: #}small {font-family: tahoma; font-size : 8pt}H3 {font-family: tahoma; font-size : 10pt; color: black}TD {font-family: tahoma; font-size : 10pt; color: black}</style><BR><BR><h1><font color=#>&nbsp;&nbsp;<b>Find Flight</font></b></h1><blockquote>
  11. <form method="post" action="reservations.pl" enctype="application/x-www-form-urlencoded">
  12.  
  13. <center>
  14. <!-- From Denver () To London () -->
  15. <table cellspacing= border= width=%>
  16. <blockquote>Flight departing from <B>Denver</B> to <B>London</B> on <B>//</B><BR><BR><tr bgcolor=#5E7884><td align=center><font color=white><B>Flight</B></font>
  17. <td align=center><font color=white><B>Departure time</B>
  18. <td align=center><font color=white><B>Cost</B>
  19. //从下面可以看出航班(020、021...)的 左边界是 outboundFlight value= 右边界是 ;
  20. // 票价($ 635、$ 565...)的 左边界是 center>$ 右边界是 </TD>
  21. <tr bgcolor=#EFF2F7>
  22. <td align=center><input type = radio name=outboundFlight value=;;// checked >Blue Sky Air <td align=center>8am<td align=center>$ </TD>
  23. </TR>
  24. <tr bgcolor=#EFF2F7>
  25. <td align=center><input type = radio name=outboundFlight value=;;//>Blue Sky Air <td align=center>1pm<td align=center>$ </TD>
  26. </TR>
  27. <tr bgcolor=#EFF2F7>
  28. <td align=center><input type = radio name=outboundFlight value=;;//>Blue Sky Air <td align=center>5pm<td align=center>$ </TD>
  29. </TR>
  30. <tr bgcolor=#EFF2F7>
  31. <td align=center><input type = radio name=outboundFlight value=;;//>Blue Sky Air <td align=center>11pm<td align=center>$ </TD>
  32. </TR>
  33. </table>
  34.  
  35. <input type="hidden" name="numPassengers" value="" /><input type="hidden" name="advanceDiscount" value="" /><input type="hidden" name="seatType" value="First" /><input type="hidden" name="seatPref" value="Window" />
  36. <P><center><table width=% cellspacing=><tr><td align=center>
  37. <input type="image" name="reserveFlights" src="/WebTours/images/button_next.gif" border="" />
  38. <td>&nbsp;<td align=center></table></center></form></center>
  39. </blockquote>
  40.  
  41. </body>
  42. </html>

航班信息

loadrunner提高篇 - 关联技术的经典使用的更多相关文章

  1. loadrunner提高篇-插入检查点与关联函数

    插入检查点   靠LR自动生成的脚本是不够的,很难达到业务要求,因此需要对录制完的脚本进行完善,使其能达到业务模拟的要求 ,这样尽可能地使虚拟用户模拟时更接近用户的实际使用. 在进行压力测试时,经常会 ...

  2. loadrunner提高篇-block(块)技术和参数化

    Block(块)技术 block(块)技术是应用于在一个脚本中实现不同事务.不同次数循环或不同百分比循环的情况.比如在一个脚本中,登录执行3次,查询执行1次. 使用方法如下: 1.录制一个脚本,包含2 ...

  3. loadrunner提高篇-场景设计实践

    集合点设置 一.为什么要进行集合点设置? 因为在测试过程中,并不能保证所有的Vuser都在同一时刻进行操作,这样就达不到并发测试的目的,故需要用到集合点技术,集合点的意思是如果在一个操作之前设置了一个 ...

  4. loadrunner提高篇-结果分析实践

    分析图合并 一.分析图合并原理 选择view->merge graphs,弹出如图1所示对话框 图1(设置合并图) 1.选择要合并的图.选择一个要与当前活动图合并的图,注意这里只能选择X轴度量单 ...

  5. 【Loadrunner】Loadrunner 手动关联技术

    Loadrunner 手动关联技术 录制成功,回放失败,怀疑和动态数据有关: 1 重新录制一份脚本,两次录制的脚本进行比对,确定动态数据,复制动态数据: 2  找到第一次产生该动态数据的响应对应的相应 ...

  6. LoadRunner脚本篇

    LoadRunner脚本篇     1概述 2脚本录制 3脚本编写 4脚本调试   关  键  词:LoadRunner 性能测试脚本 摘      要:编写一个准确无误的脚本对性能测试有至关重要的意 ...

  7. java提高篇(八)----详解内部类

    可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二). 第一次见面 内部类我们从外面 ...

  8. java提高篇(四)-----理解java的三大特性之多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  9. java提高篇(二)-----理解java的三大特性之继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

随机推荐

  1. Linux_free(buffer与cache区别)

    一.free命令[root@xen_202_12 /]# free -m             total       used       free     shared    buffers   ...

  2. virtual abstract override new 几点学习

    1.Vitual方法和普通方法区别为:继承其的子类可以用override/new在重载此方法,也可以不重载其方法,有方法体(可以写语句),override修饰则调用子类方法2.abstract类中抽象 ...

  3. winform程序开机启动时的运行目录

    并不是程序的当前路径,而是系统的某个目录 如环境是win10 64位,路径是 c:\winfows\SysWOW64\ConfigInfor.json

  4. 进化的Spark, 从DataFrame说起

    进化的Spark, 从DataFrame说起:http://www.tuicool.com/articles/IzeY7zM

  5. docker-composer

    1.安装docker-composer   参考官方 安装1.20.1 sudo curl -L https://github.com/docker/compose/releases/download ...

  6. CentOS 下安装 OpenOffice4.0

    一.更新服务器 yum源 [root@APP2 /]# yum clean all [root@APP2 /]# yum makecache [root@APP2 /]# yum update 1.首 ...

  7. centos 网卡聚合及Cisco交换机链路聚合

    一.配置环境 centos 系统.网卡1口和2口做链路聚合.    交换机网口 6口和7口. 二.服务器操作步骤 centos 6 1.创建一个channel bonding interface #v ...

  8. [udemy]WebDevelopment_HTML5

    Build Your First Website  装一个subline text HTML default rule tags with opening and closing <!DOCTY ...

  9. 22-maven-安装与配置

    转载:https://blog.csdn.net/wy727764020/article/details/80595451 Maven的安装以及eclipse中配置maven 2018年06月06日 ...

  10. DICOM

    DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 12052).它定义了质量能满足 ...