RFT脚本运行时IE异常关闭的问题

   前段时间在使用RFT做自动化测试时,碰到了一个比较诡异的问题。当使用脚本点击弹出界面中的确定按钮时,会有一定的概率出现所有的IE界面都被关闭的情况,导致脚本无法找到一个测试对象而失败。在IE被关闭的同时,RFT的虚拟机在桌面上生成了一份日志报告,为了方便,这份日志的内容附在了文章的末尾。

    这个问题的出现极大的影响了自动化测试的效果,每次脚本运行都会有将近20多个脚本因为这个原因而失败, 经过排查,先后采取了两种处理方式:

    一、修改RFT的JDK版本与本机的JDK版本一致。RFT的JDK版本是1.5,而我在本机上安装的是JDK1.6。我觉的主要的影响在于IE使用的是本机上的JDK,而对象检查器要识别IE上的对象,有可能出现不兼容的情况,当然,这个还没法验证,只是猜想。后来把本机上的JDK也修改成1.5,再次运行脚本时,情况未有改观。

    二、在运行脚本时,很偶然的发现在测试过程中,IE的内存占用居高不下。于是猜想,由于脚本运行时采取注销再登录的方式,并不会关闭IE,那么是否因为IE的内存消耗太高,导致JVM报错从而关闭IE呢。于是抱着试一试的想法修改脚本的处理逻辑,在每次注销退出时,都让脚本自动关闭IE,再重新打开执行测试,   这样做的目的就是避免出现IE占用内存过高的情况。在修改后,脚本失败的概率明显降低。

 

异常信息日志:

#
# An unexpected error has been detected by Java Runtime Environment:
#
#  Internal Error (0xe06d7363), pid=3852, tid=3684
#
# Java VM: Java HotSpot(TM) Client VM (10.0-b19 mixed mode, sharing windows-x86)
# Problematic frame:
# C  [kernel32.dll+0x12a5b]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x03add800):  JavaThread "Thread-17" [_thread_in_native, id=3684, stack(0x06050000,0x06150000)]

siginfo: ExceptionCode=0xe06d7363, ExceptionInformation=0x19930520 0x0614e5a0 0x050db5b4

Registers:
EAX=0x0614e500, EBX=0x133139dc, ECX=0x00000000, EDX=0x0614e5a0
ESP=0x0614e4fc, EBP=0x0614e550, ESI=0x0614e590, EDI=0x0614e590
EIP=0x7c812a5b, EFLAGS=0x00000206

Top of Stack: (sp=0x0614e4fc)
0x0614e4fc:   050d1fa4 e06d7363 00000001 00000000
0x0614e50c:   7c812a5b 00000003 19930520 0614e5a0
0x0614e51c:   050db5b4 ffffffff 7c9306eb 7c3416b3
0x0614e52c:   048e0000 00000003 048e0000 0000000c
0x0614e53c:   0614e584 7c92ee18 00010570 00000004
0x0614e54c:   0614e4a8 0614e590 050b9859 e06d7363
0x0614e55c:   00000001 00000003 0614e584 00000000
0x0614e56c:   133139dc e06d7363 00000001 00000000

Instructions: (pc=0x7c812a5b)
0x7c812a4b:   8d 7d c4 f3 a5 5f 8d 45 b0 50 ff 15 08 15 80 7c
0x7c812a5b:   5e c9 c2 10 00 85 ff 0f 8e 36 93 ff ff 8b 55 fc


Stack: [0x06050000,0x06150000],  sp=0x0614e4fc,  free space=1017k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [kernel32.dll+0x12a5b]
C  [rtxIEDomain.dll+0x29859]
C  [rtxIEDomain.dll+0x26522]
C  [rtxIEDomain.dll+0x2196c]
C  [rtxIEDomain.dll+0x1caa6]
C  [rtxivsys.dll+0x9a5d]
J  com.rational.test.ft.domain.html.HtmlProxy.getProperties(J)[Ljava/lang/String;
J  com.rational.test.ft.domain.html.HtmlProxy.getProperty(Ljava/lang/String;)Ljava/lang/Object;
v  ~BufferBlob::Interpreter
J  com.rational.test.ft.object.manager.TestObjectFinderAgent$9.send()Ljava/lang/Object;
J  com.rational.test.ft.domain.ChannelRunnable.run()V
J  com.rational.test.ft.domain.ThreadChannel.open()V
v  ~BufferBlob::StubRoutines (1)

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J  com.rational.test.ft.domain.html.HtmlProxy.getProperties(J)[Ljava/lang/String;
J  com.rational.test.ft.domain.html.HtmlProxy.getProperty(Ljava/lang/String;)Ljava/lang/Object;
v  ~BufferBlob::Interpreter
J  com.rational.test.ft.object.manager.TestObjectFinderAgent$9.send()Ljava/lang/Object;
J  com.rational.test.ft.domain.ChannelRunnable.run()V
J  com.rational.test.ft.domain.ThreadChannel.open()V
v  ~BufferBlob::StubRoutines (1)

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
=>0x03add800 JavaThread "Thread-17" [_thread_in_native, id=3684, stack(0x06050000,0x06150000)]
  0x043b8400 JavaThread "RationalFtHelper" daemon [_thread_blocked, id=832, stack(0x05500000,0x05600000)]
  0x04388000 JavaThread "CacheCleanUpThread" daemon [_thread_blocked, id=744, stack(0x04c00000,0x04d00000)]
  0x04368400 JavaThread "traceMsgQueueThread" daemon [_thread_blocked, id=3860, stack(0x04b00000,0x04c00000)]
  0x0435f400 JavaThread "TestContext" daemon [_thread_blocked, id=3348, stack(0x04a00000,0x04b00000)]
  0x04342000 JavaThread "AWT-Windows" daemon [_thread_in_native, id=3892, stack(0x04730000,0x04830000)]
  0x03b1f000 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=3968, stack(0x04530000,0x04630000)]
  0x03a8bc00 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=3576, stack(0x04120000,0x04220000)]
  0x03a86000 JavaThread "CompilerThread0" daemon [_thread_blocked, id=904, stack(0x04020000,0x04120000)]
  0x03a85000 JavaThread "Attach Listener" daemon [_thread_blocked, id=3392, stack(0x03f20000,0x04020000)]
  0x03a8f800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2324, stack(0x03e20000,0x03f20000)]
  0x03a40400 JavaThread "Finalizer" daemon [_thread_blocked, id=3520, stack(0x03d20000,0x03e20000)]
  0x03a3f400 JavaThread "Reference Handler" daemon [_thread_blocked, id=2300, stack(0x03c20000,0x03d20000)]
  0x01017800 JavaThread "main" [_thread_in_native, id=3592, stack(0x00030000,0x00130000)]

Other Threads:
  0x03a3e000 VMThread [stack: 0x03b20000,0x03c20000] [id=640]
  0x03a98800 WatcherThread [stack: 0x04220000,0x04320000] [id=768]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 def new generation   total 960K, used 805K [0x229d0000, 0x22ad0000, 0x22eb0000)
  eden space 896K,  82% used [0x229d0000, 0x22a894d8, 0x22ab0000)
  from space 64K,  99% used [0x22ab0000, 0x22abfff8, 0x22ac0000)
  to   space 64K,   0% used [0x22ac0000, 0x22ac0000, 0x22ad0000)
 tenured generation   total 7828K, used 5953K [0x22eb0000, 0x23655000, 0x269d0000)
   the space 7828K,  76% used [0x22eb0000, 0x234804b0, 0x23480600, 0x23655000)
 compacting perm gen  total 12288K, used 3921K [0x269d0000, 0x275d0000, 0x2a9d0000)
   the space 12288K,  31% used [0x269d0000, 0x26da4460, 0x26da4600, 0x275d0000)
    ro space 8192K,  62% used [0x2a9d0000, 0x2aed2a28, 0x2aed2c00, 0x2b1d0000)
    rw space 12288K,  52% used [0x2b1d0000, 0x2b8186b8, 0x2b818800, 0x2bdd0000)

Dynamic libraries:
0x00400000 - 0x00419000  C:/Program Files/Internet Explorer/iexplore.exe
0x7c920000 - 0x7c9b4000  C:/WINDOWS/system32/ntdll.dll
0x7c800000 - 0x7c91d000  C:/WINDOWS/system32/kernel32.dll
0x77be0000 - 0x77c38000  C:/WINDOWS/system32/msvcrt.dll
0x77d10000 - 0x77d9f000  C:/WINDOWS/system32/USER32.dll
0x77ef0000 - 0x77f37000  C:/WINDOWS/system32/GDI32.dll
0x77f40000 - 0x77fb6000  C:/WINDOWS/system32/SHLWAPI.dll
0x77da0000 - 0x77e49000  C:/WINDOWS/system32/ADVAPI32.dll
0x77e50000 - 0x77ee2000  C:/WINDOWS/system32/RPCRT4.dll
0x77fc0000 - 0x77fd1000  C:/WINDOWS/system32/Secur32.dll
0x7e550000 - 0x7e6bf000  C:/WINDOWS/system32/SHDOCVW.dll
0x765e0000 - 0x76672000  C:/WINDOWS/system32/CRYPT32.dll
0x76db0000 - 0x76dc2000  C:/WINDOWS/system32/MSASN1.dll
0x75430000 - 0x754a1000  C:/WINDOWS/system32/CRYPTUI.dll
0x76c00000 - 0x76c2e000  C:/WINDOWS/system32/WINTRUST.dll
0x76c60000 - 0x76c88000  C:/WINDOWS/system32/IMAGEHLP.dll
0x770f0000 - 0x7717b000  C:/WINDOWS/system32/OLEAUT32.dll
0x76990000 - 0x76acd000  C:/WINDOWS/system32/ole32.dll
0x5fdd0000 - 0x5fe24000  C:/WINDOWS/system32/NETAPI32.dll
0x76680000 - 0x76722000  C:/WINDOWS/system32/WININET.dll
0x76f30000 - 0x76f5c000  C:/WINDOWS/system32/WLDAP32.dll
0x77bd0000 - 0x77bd8000  C:/WINDOWS/system32/VERSION.dll
0x76300000 - 0x7631d000  C:/WINDOWS/system32/IMM32.DLL
0x62c20000 - 0x62c29000  C:/WINDOWS/system32/LPK.DLL
0x73fa0000 - 0x7400b000  C:/WINDOWS/system32/USP10.dll
0x77180000 - 0x77283000  C:/WINDOWS/WinSxS/x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03/comctl32.dll
0x7d590000 - 0x7dd83000  C:/WINDOWS/system32/SHELL32.dll
0x5d170000 - 0x5d20a000  C:/WINDOWS/system32/comctl32.dll
0x305e0000 - 0x305f6000  C:/Program Files/Kaspersky Lab/Kaspersky Anti-Virus 7.0/miscr3.dll
0x30480000 - 0x3048e000  C:/Program Files/Kaspersky Lab/Kaspersky Anti-Virus 7.0/fssync.dll
0x78130000 - 0x781cb000  C:/Program Files/Kaspersky Lab/Kaspersky Anti-Virus 7.0/MSVCR80.dll
0x5adc0000 - 0x5adf7000  C:/WINDOWS/system32/uxtheme.dll
0x74680000 - 0x746cb000  C:/WINDOWS/system32/MSCTF.dll
0x75ef0000 - 0x75fed000  C:/WINDOWS/system32/BROWSEUI.dll
0x307e0000 - 0x30807000  C:/Program Files/Kaspersky Lab/Kaspersky Anti-Virus 7.0/scrchpg.dll
0x20000000 - 0x2000f000  C:/WINDOWS/system32/browselc.dll
0x76d70000 - 0x76d92000  C:/WINDOWS/system32/appHelp.dll
0x76fa0000 - 0x7701f000  C:/WINDOWS/system32/CLBCATQ.DLL
0x77020000 - 0x770ba000  C:/WINDOWS/system32/COMRes.dll
0x73640000 - 0x7366e000  C:/WINDOWS/system32/msctfime.ime
0x76590000 - 0x765de000  C:/WINDOWS/System32/cscui.dll
0x76570000 - 0x7658c000  C:/WINDOWS/System32/CSCDLL.dll
0x76060000 - 0x761b6000  C:/WINDOWS/system32/SETUPAPI.dll
0x75c60000 - 0x75cff000  C:/WINDOWS/system32/urlmon.dll
0x10000000 - 0x1001f000  E:/Program Files/IBM/SDP70/FunctionalTester/bin/RTXIEEnabler.dll
0x6d7c0000 - 0x6d83b000  C:/Program Files/Java/jre1.6.0_05/bin/ssv.dll
0x7c340000 - 0x7c396000  C:/Program Files/Java/jre1.6.0_05/bin/MSVCR71.dll
0x6d6b0000 - 0x6d6d1000  C:/Program Files/Java/jre1.6.0_05/bin/npjpi160_05.dll
0x6d400000 - 0x6d41b000  C:/Program Files/Java/jre1.6.0_05/bin/jpiexp.dll
0x6d1b0000 - 0x6d1c1000  C:/Program Files/Java/jre1.6.0_05/bin/deploy.dll
0x71a40000 - 0x71a4b000  C:/WINDOWS/system32/wsock32.dll
0x71a20000 - 0x71a37000  C:/WINDOWS/system32/WS2_32.dll
0x71a10000 - 0x71a18000  C:/WINDOWS/system32/WS2HELP.dll
0x719c0000 - 0x719fe000  C:/WINDOWS/System32/mswsock.dll
0x76ef0000 - 0x76f17000  C:/WINDOWS/system32/DNSAPI.dll
0x30460000 - 0x3047b000  C:/Program Files/Kaspersky Lab/Kaspersky Anti-Virus 7.0/dnsq.dll
0x76f80000 - 0x76f88000  C:/WINDOWS/System32/winrnr.dll
0x74cc0000 - 0x74cde000  C:/WINDOWS/system32/wshbth.dll
0x6d450000 - 0x6d474000  C:/Program Files/Java/jre1.6.0_05/bin/jpishare.dll
0x01770000 - 0x019c0000  C:/PROGRA~1/Java/JRE16~1.0_0/bin/client/jvm.dll
0x76b10000 - 0x76b3a000  C:/WINDOWS/system32/WINMM.dll
0x6d270000 - 0x6d278000  C:/PROGRA~1/Java/JRE16~1.0_0/bin/hpi.dll
0x76bc0000 - 0x76bcb000  C:/WINDOWS/system32/PSAPI.DLL
0x6d770000 - 0x6d77c000  C:/PROGRA~1/Java/JRE16~1.0_0/bin/verify.dll
0x6d310000 - 0x6d32f000  C:/PROGRA~1/Java/JRE16~1.0_0/bin/java.dll
0x6d7b0000 - 0x6d7bf000  C:/PROGRA~1/Java/JRE16~1.0_0/bin/zip.dll
0x6d000000 - 0x6d12e000  C:/Program Files/Java/jre1.6.0_05/bin/awt.dll
0x72f70000 - 0x72f96000  C:/WINDOWS/system32/WINSPOOL.DRV
0x736d0000 - 0x73719000  C:/WINDOWS/system32/ddraw.dll
0x73b30000 - 0x73b36000  C:/WINDOWS/system32/DCIMAN32.dll
0x6d210000 - 0x6d263000  C:/Program Files/Java/jre1.6.0_05/bin/fontmanager.dll
0x04830000 - 0x048c1000  E:/Program Files/IBM/SDP70/FunctionalTester/bin/rtxivsys.dll
0x74be0000 - 0x74c0c000  C:/WINDOWS/system32/OLEACC.dll
0x75ff0000 - 0x76055000  C:/WINDOWS/system32/MSVCP60.dll
0x6d3e0000 - 0x6d3f8000  C:/Program Files/Java/jre1.6.0_05/bin/jpicom.dll
0x76eb0000 - 0x76eec000  C:/WINDOWS/system32/RASAPI32.DLL
0x76e60000 - 0x76e72000  C:/WINDOWS/system32/rasman.dll
0x76e80000 - 0x76eaf000  C:/WINDOWS/system32/TAPI32.dll
0x76e50000 - 0x76e5e000  C:/WINDOWS/system32/rtutils.dll
0x77c40000 - 0x77c63000  C:/WINDOWS/system32/msv1_0.dll
0x76d30000 - 0x76d48000  C:/WINDOWS/system32/iphlpapi.dll
0x72240000 - 0x72245000  C:/WINDOWS/system32/sensapi.dll
0x759d0000 - 0x75a7e000  C:/WINDOWS/system32/USERENV.dll
0x6d570000 - 0x6d583000  C:/Program Files/Java/jre1.6.0_05/bin/net.dll
0x76f90000 - 0x76f96000  C:/WINDOWS/system32/rasadhlp.dll
0x60fd0000 - 0x61025000  C:/WINDOWS/system32/hnetcfg.dll
0x71a00000 - 0x71a08000  C:/WINDOWS/System32/wshtcpip.dll
0x05040000 - 0x0507c000  C:/Program Files/Java/jre1.6.0_05/bin/regutils.dll
0x7c9c0000 - 0x7cc7e000  C:/WINDOWS/system32/msi.dll
0x05090000 - 0x050e8000  E:/Program Files/IBM/SDP70/FunctionalTester/bin/rtxIEDomain.dll
0x05600000 - 0x05b49000  C:/WINDOWS/system32/xpsp2res.dll
0x04640000 - 0x046bc000  C:/WINDOWS/system32/shdoclc.dll
0x74cf0000 - 0x74d81000  C:/WINDOWS/system32/mlang.dll
0x75e00000 - 0x75eae000  C:/WINDOWS/system32/SXS.DLL
0x60800000 - 0x60809000  C:/WINDOWS/system32/mslbui.dll
0x65d50000 - 0x65d57000  C:/WINDOWS/system32/jsproxy.dll
0x75bc0000 - 0x75c2f000  C:/WINDOWS/system32/jscript.dll
0x7e210000 - 0x7e506000  C:/WINDOWS/system32/mshtml.dll
0x74620000 - 0x74647000  C:/WINDOWS/system32/msls31.dll
0x74650000 - 0x7467a000  C:/WINDOWS/system32/msimtf.dll
0x06c30000 - 0x06c9f000  C:/Program Files/Common Files/Microsoft Shared/INK/PENCHS.DLL
0x5c380000 - 0x5c3c2000  C:/WINDOWS/ime/sptip.dll
0x06db0000 - 0x06dc1000  C:/WINDOWS/IME/SPGRMR.DLL
0x325c0000 - 0x325d2000  C:/Program Files/Microsoft Office/OFFICE11/msohev.dll
0x30510000 - 0x3051b000  C:/Program Files/Kaspersky Lab/Kaspersky Anti-Virus 7.0/klscav.dll
0x30760000 - 0x30774000  C:/Program Files/Kaspersky Lab/Kaspersky Anti-Virus 7.0/prremote.dll
0x7c420000 - 0x7c4a7000  C:/Program Files/Kaspersky Lab/Kaspersky Anti-Virus 7.0/MSVCP80.dll
0x30710000 - 0x30758000  C:/Program Files/Kaspersky Lab/Kaspersky Anti-Virus 7.0/prloader.dll
0x311f0000 - 0x31220000  C:/Program Files/Kaspersky Lab/Kaspersky Anti-Virus 7.0/prkernel.ppl
0x31080000 - 0x310f1000  c:/program files/kaspersky lab/kaspersky anti-virus 7.0/params.ppl
0x312c0000 - 0x312c9000  c:/program files/kaspersky lab/kaspersky anti-virus 7.0/pxstub.ppl
0x31430000 - 0x31437000  c:/program files/kaspersky lab/kaspersky anti-virus 7.0/tempfile.ppl
0x31010000 - 0x31026000  c:/program files/kaspersky lab/kaspersky anti-virus 7.0/nfio.ppl
0x30d90000 - 0x30d96000  c:/program files/kaspersky lab/kaspersky anti-virus 7.0/fsdrvplg.ppl
0x30be0000 - 0x30c98000  c:/program files/kaspersky lab/kaspersky anti-virus 7.0/basegui.ppl
0x31440000 - 0x31448000  c:/program files/kaspersky lab/kaspersky anti-virus 7.0/thpimpl.ppl
0x31660000 - 0x31669000  c:/program files/kaspersky lab/kaspersky anti-virus 7.0/winreg.ppl
0x72c90000 - 0x72c99000  C:/WINDOWS/system32/wdmaud.drv
0x72c80000 - 0x72c88000  C:/WINDOWS/system32/msacm32.drv
0x77bb0000 - 0x77bc5000  C:/WINDOWS/system32/MSACM32.dll
0x77ba0000 - 0x77ba7000  C:/WINDOWS/system32/midimap.dll
0x753b0000 - 0x75421000  C:/WINDOWS/system32/mshtmled.dll
0x5dd50000 - 0x5de63000  C:/WINDOWS/system32/msxml3.dll
0x6c140000 - 0x6c176000  C:/WINDOWS/system32/dxtrans.dll
0x76af0000 - 0x76b01000  C:/WINDOWS/system32/ATL.DLL
0x0aa80000 - 0x0aa8a000  C:/WINDOWS/system32/ddrawex.dll
0x6c180000 - 0x6c1da000  C:/WINDOWS/system32/dxtmsft.dll
0x30000000 - 0x303af000  C:/WINDOWS/system32/Macromed/Flash/Flash9f.ocx

VM Arguments:
jvm_args: -Xbootclasspath/a:C:/PROGRA~1/Java/JRE16~1.0_0/lib/deploy.jar;C:/PROGRA~1/Java/JRE16~1.0_0/lib/plugin.jar -Xmx64m -Djavaplugin.maxHeapSize=64m -Xverify:remote -Djavaplugin.version=1.6.0_05 -Djavaplugin.nodotversion=160_05 -Dbrowser=sun.plugin -DtrustProxy=true -Dapplication.home=C:/PROGRA~1/Java/JRE16~1.0_0 -Djavaplugin.vm.options=-Djava.class.path=C:/PROGRA~1/Java/JRE16~1.0_0/classes -Xbootclasspath/a:C:/PROGRA~1/Java/JRE16~1.0_0/lib/deploy.jar;C:/PROGRA~1/Java/JRE16~1.0_0/lib/plugin.jar -Xmx64m -Djavaplugin.maxHeapSize=64m -Xverify:remote -Djavaplugin.version=1.6.0_05 -Djavaplugin.nodotversion=160_05 -Dbrowser=sun.plugin -DtrustProxy=true -Dapplication.home=C:/PROGRA~1/Java/JRE16~1.0_0 
java_command: <unknown>
Launcher Type: generic

Environment Variables:
JAVA_HOME=C:/jdk1.6.0_05
CLASSPATH=.;C:/jdk1.6.0_05/lib/tools.jar;C:/jdk1.6.0_05/lib/dt.jar
PATH=C:/PROGRA~1/Java/JRE16~1.0_0/bin;e:/Program Files/IBM/SDP70Shared/AgentController/bin;C:/jdk1.6.0_05/bin;d:/oracle/product/10.2.0/db_1/bin;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;C:/Program Files/StormII/Codec;C:/Program Files/StormII;.
USERNAME=Administrator
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 13, GenuineIntel

 

---------------  S Y S T E M  ---------------

OS: Windows XP Build 2600 Service Pack 2

CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 15 stepping 13, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3

Memory: 4k page, physical 2095468k(1263896k free), swap 4037492k(3236808k free)

vm_info: Java HotSpot(TM) Client VM (10.0-b19) for windows-x86 JRE (1.6.0_05-b13), built on Feb 22 2008 01:16:53 by "java_re" with MS VC++ 7.1

time: Sat Aug 16 11:48:28 2008
elapsed time: 161 seconds

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

低音钢琴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值