TestComplete的内建函数

TestComplete Made Easy 读书笔记 阅读详情
 
TestComplete的内建函数
 
陈能技
2007-9-8
 
TestComplete通过BuiltIn对象访问所有内建的函数,这些函数基本上可以在TC支持的各种脚本语言中使用,提供各种常用的功能。本文介绍脚本编写中经常用到的函数。
 
文件和目录
文件和目录操作可以使用BuiltIn.CopyFiles和BuiltIn.RemoveFolders两个内建函数,CopyFiles把文件或文件目录拷贝到一个新的位置。RemoveFolders把某个目录删除。
 
数组
创建数组可以使用BuiltIn.CreateVariantArray、BuiltIn.CreateVariantArray2和BuiltIn.CreateVariantArray3,分别用于创建一维数组、二维数组和三维数组。需要注意的是这三个内建函数不支持在JScript, C++Script 和 C#Script中使用。
 
下面脚本创建一个三维数组,并为其赋值:
// Creates a three-dimensional array [0..1, 1..2, 2..3]
w := CreateVariantArray3(0, 1, 1, 2, 2, 3);
w[0,1,2] := 'Element 0,1,2';
w[0,2,2] := 'Element 0,2,2';
w[1,2,2] := 'Element 1,2,2';
w[1,2,3] := 'Element 1,2,3';
 
另外还可以使用BuiltIn.VarArrayHighBound和BuiltIn.VarArrayLowBound来获取某个数组的范围,使用BuiltIn.VarArrayRedim来调整数组的大小。需要注意的是这几个函数所操作的数组必须是用CreateVariantArray、CreateVariantArray2、CreateVariantArray3方法来创建的数组。
 
暂停
使用Delay函数来暂停脚本的执行一段时间。例如,下面脚本暂停脚本执行5000毫秒:
var ms, HelpStr: OleVariant;
...
ms := 5000;
HelpStr := 'Delaying test run for ' + BuiltIn.VarToStr(ms) + 'milliseconds.';
BuiltIn.Delay (ms, HelpStr);
 
COM服务路径
要想取得的某个COM服务的路径,可以使用BuiltIn.GetCOMServerPath函数。例如下面脚本返回Word的路径:
PathToWord := GetCOMServerPath('Word.Application');
 
CSV文件
使用BuiltIn.GetCSVItem和BuiltIn.GetCSVCount来获取CSV文件的内容。
 
对象属性的设置和读取
对于某个对象的属性的读取或设置,可以使用BuiltIn.GetValue和BuiltIn.SetValue函数。例如下面脚本获取某个窗体的Caption属性:
w := p.Window('MainForm', '', 1);
Log.Message(GetValue(w, 'Caption'));
 
而下面脚本则相反,设置某个窗体的Caption属性:
w := p.Window('MainForm', '', 1);
SetValue(w, 'Caption', 'New Caption');
 
还可以使用BuiltIn.IsSupported函数来判断某个对象是否包含指定的方法或属性,用BuiltIn.CallMethod来调用某个对象的指定方法。例如下面脚本首先判断记事本窗体对象是否支持Position方法,如果支持,则调用该方法,改变窗体的位置和大小:
p1 := Sys.Process('notepad');
w:=p1.Window('Notepad', '*');
if (BuiltIn.IsSupported(w, 'Position'))
then
begin
 BuiltIn.CallMethod(w, 'Position', 100,100,100,100)
end;
 
重启并继续测试
有时候测试某些应用需要重新启动操作系统然后继续测试,例如测试某些安装程序,这时候可以使用BuiltIn.RebootAndContinue内建函数。该函数使用方法如下:
BuiltIn.RebootAndContinue(Param1, Param2, Param3, Param4)
 
该函数有4个参数,其中第一个函数用于指定重启之后要执行的脚本程序,第2、3、4个参数分别指定登录操作系统时的密码、帐号和域。
 
保存信息到文件或发送到邮件
在测试过程中,有时候需要把信息记录起来或通知大家,这时候可以使用函数BuiltIn.SaveStrToFile把字符保存到文件,可以指定是重写文件还是添加到文件。
 
可以使用BuiltIn.SendMAPIMail发送邮件。BuiltIn.SendMAPIMail通过微软的MAPI(Messaging Application Programming)接口发送邮件。
 
变量处理
变量处理函数包括VarClear,VarToBool, VarToFloat, VarToInteger, VarToString, VarToWString。
 
VarClear用于将变量设置为空。VarToBool, VarToFloat, VarToInteger, VarToString, VarToWString分别用于将变量转换成布尔类型、浮点型、整型、字符串型和宽字符串类型。例如下面代码将整型转换成字符串类型:
Int1:=1;
Log.Message(VarToString(Int1));
 
另外BuiltIn.VarType用于返回变量的类型。返回值可以是下表中的一个:
Constant
Value
varEmpty
0000h
varNull
0001h
varSmallint
0002h
varInteger
0003h
varSingle
0004h
varDouble
0005h
varCurrency 
0006h
varDate
0007h
varOleStr
0008h
varDispatch
0009h
varError
000Ah (操作系统错误代码)
varBoolean
000Bh
varVariant
000Ch
varUnknown
000Dh (未知的 OLE 对象)
varByte
0011h
varArray
2000h
varByRef
4000h (对某种类型的值的引用,用低位字节表示,例如4007h 是对日期的引用)
 
 
 
TestComplete 2全面使用指南 本文还有配套的精品资源,点击获取 简介:TestComplete 2(TC2)是一款在软件测试领域中表现出色的自动化测试工具,特别是在功能测试、回归测试和数据驱动测试方面。本指南详细介绍了如何下载安装、创建测试项目、选择脚本语言、使用对象识别与录制功能、编写和编辑脚本、组织测试套件和用例、实施数据驱动测试、运行测试和分析结果、进行调试和优化,以及利用版本控制和持续集成来提升... 阅读详情

相关推荐

Test Complete中文帮助手册

Test Complete自带帮助文档的中文版

GUI测试首推!TestComplete 帮助有效缩短 40-50% 测试时长!

TestComplete 集成了一种精心设计的自动化引擎,可以自动记录和回放用户的操作,方便用户进行UI(用户界面)测试,该工具提供了脚本和图形化界面操作支持。

励志做最业余的专业博主,控件产品可以私我~ 2594

高速设计注意事项总结——MDI篇

在以太网高速通信系统中,MDI(Medium Dependent Interface,介质相关接口)是连接物理层芯片(PHY)与传输介质(如网线)的关键接口,其设计直接影响信号完整性、传输速率和抗干扰能力。本文围绕 MDI 及 RJ45 接口电路、关键参数、设计与布线要点展开,为高速以太网设计提供参考。本文包含MDI 及 RJ45 接口电路组成、电路设计注意事项、布局布线要求等内容

qq_16237389的博客 1445

以初学者角度介绍TestComplete的使用

以初学者角度介绍TestComplete的使用 2019-01-11 出处:埃森哲测试中心 作/译者:Shuyan 使用背景 在上一个Automation Project中有幸使用了TestComplete自动化测试工具,作为一只小菜鸟,第一次接触到融合了界面录制和脚本的工具,简直不要太好用。 引用一下百度百度的介绍:“TestComplete为Windows、.N...

qq_39081511的博客 1万+

手机相机基础技术解析:从硬件到算法的全面指南

手机相机的成像过程可简化为的链路,其核心硬件包括 镜头、CMOS传感器、ISP(图像信号处理器) 以及配套的软件算法。

weixin_44239603的博客 2448

西门子 S7-200 SMART 系列六:手把手教你配置S7-200 SMART Modbus RTU

最新发表:https://www.ics-pedia.com/%e8%a5%bf%e9%97%a8%e5%ad%90-s7-200-smart-%e7%b3%bb%e5%88%97%e5%85%ad%ef%bc%9a%e6%89%8b%e6%8a%8a%e6%89%8b%e6%95%99%e4%bd%a0%e9%85%8d%e7%bd%aes7-200-smart-modbus-rtu%e5%ae%9e%e4%be%8b/

John_09040211的博客 3279

test ui-04-testcomplete 入门介绍

TestComplete是一款适用于各种应用程序类型和技术的自动化测试环境,包括(但不限于)Windows、.NET、WPF、Visual C++、Visual Basic、Delphi、C++Builder、Java以及Web应用程序和服务。TestComplete既适用于功能测试,也适用于单元测试。它提供卓越的支持,可用于日常回归测试,并支持许多其他类型的测试:数据驱动测试、分布式测试等。您可以通过录制或在TestComplete面板和编辑器中编辑测试命令来创建测试。

1345

一种解决STM32多串口同时收发的方法

在做项目中,遇到了同时调用串口通信时程序崩溃的问题,在项目中,串口1用作调试串口,串口2用作MQTT通信串口,串口3用作下位机通信串口, 串口1重定向以后,用库函数自带的printf函数打印字符串 串口2使用自己写的u2_printf函数,即va_list这套变参宏定义后使用vsprintf函数打印字符串 串口3刚开始使用串口2一样的打印方式,程序在调试调用到串口3打印函数时直接崩溃,后续将串口3改用dma转存输出,仍然无法正常调用 多次研究以后,采用三个串口都使用重定向后的库函数自带的printf

Zxp0605的博客 8796

手把手教你TestComplete_TestComplete是啥东东

手把手教你TestComplete_TestComplete是啥东东    TestComplete是啥东东?   答案一:   谨遵内事不决问百度的法则,先查查百度百科,解释是:   TestComplete是AutomatedQA公司开发的一套支持自动测试软件

Testingba工作室 4299

黑猫带你学UFS协议第2篇:UFS相关名词释义

本文依据UFSJEDEC3.1、个人工作经验整理而成,如有错误请留言。文章为个人辛苦整理,付费内容,已加入原创保护,禁止私自转载。文章所在专栏《黑猫带你学UFS协议详解》

黑猫奥利奥的博客 5302

利用GAT(图论分析工具箱)构建并分析大脑结构协变网络学习笔记

前言 前面我学习了利用DTI构建白质纤维脑网络,并采用GRETNA计算了小世界网络属性。阅读文献发现可以利用灰质体积或皮层指标(皮层厚度、折叠指数、沟深)等构建结构协变网络再进行网络拓扑属性的计算。因此,我采用前面提取的灰质体积和皮质数据进行了结构协变网络分析,特此写下笔记以便后面的学习。 一、数据准备 二、构建结构协变网络 三、全局属性的统计分析 四、局部属性的统计分析 五、网络攻击分析 六、度的分布 ..................

weixin_52073820的博客 7496

TestComplete下载安装

自动化测试工具TestComplete入门学习。

qq_50520874的博客 1995

C++和OpenGL实现3D游戏编程【连载7】——文字和汉字的显示(附源码)

上一节我们讨论了纹理在二维平面内不规则图形贴图的相关基础操作,本节我们开始了解游戏里文字以及汉字的显示方法。本节课我们将从基本的ASCII字符显示,拓展到中文字符的显示,最后再讲到纹理字符的显示,并对各种文字显示方法的优缺点和使用场景进行分析,这节课将使用到显示列表、兼容视图、屏幕图形转纹理等操作。

zhooyu的博客 1498

UI自动化-TestComplete

TestComplete(SmartBear公司出品)是一款成熟的商业自动化测试工具,专注于解决桌面、Web和移动应用的UI测试挑战。它融合了强大的对象识别引擎、灵活的脚本支持以及企业级集成能力,旨在提升测试效率和可靠性。TestComplete是企业级UI自动化测试的“瑞士军刀”,尤其擅长复杂场景下的稳定性测试。其 AI混合识别、多平台覆盖、低代码/高代码双模式 设计,使其成为中大型项目或混合技术团队的优选。但需权衡 商业成本 和 Windows环境依赖。

Oooon_the_way的博客 1306

微信浏览器input[file]拍照点确认后强刷新解决

微信浏览器input强刷新,input h5强刷新,微信浏览器上传图片后刷新,h5表单强刷新,h5调用拍照后返回首页,h5调用拍照后刷新,微信浏览器强制刷新,iOS上微信浏览器input强刷新,iOS上微信浏览器上传图片后强刷新,ios微信浏览器上传图片后页面刷数据,h5在ios浏览器闪频,h5在ios微信打开时强制刷新,ios手机上调用相机后页面刷新,ios手机上调用相机后页面后重置,ios拍照后刷新,ios拍照完页面大刷新

江拥羡橙的博客 1349

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

TestComplete中脚本编写常用函数

TestComplete通过BuiltIn对象访问所有内建的函数,这些函数基本上可以在TC支持的各种脚本语言中使用,提供各种常用的功能。本文介绍脚本编写中经常用到的函数。   文件和目录         文件和目录操作可以使用BuiltIn.CopyFiles和BuiltIn.RemoveFolders两个内建函数,CopyFiles把文件或文件目录拷贝到一个新的位置。RemoveFolde

zz的专栏 1424

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

无限续杯TestComplete

摘要:本文介绍了通过虚拟邮箱实现TestComplete(TC)持续免费使用的方法。当TC试用到期时,只需更换新的虚拟邮箱即可继续免费使用。该方法简单易行,能够有效延长TC使用时间。

qq_52568607的博客 517

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【干货】TestComplete的录像功能如何实现高效GUI测试

自动化测试工具TestComplete能够录制测试过程的完整视频,并自动标记关键事件,测试人员可以直观地观察用户操作与系统响应,快速定位问题根源。结合图像捕获功能,还能同步记录界面元素的属性,确保动态变化和UI状态的精准验证。

2501_91602431的博客 635

TestComplete Script Extension

为TestComplete编写tcx Extension(包含UserForm) 1.     按照正常逻辑编写并调试程序 2.     导出UserForm和js文件 1)UserForms: 对每一个UserForm都进行相同处理:右键-> Export to File -> 输入保存名称,保存 2)保存js文件 3.      将所需要的文件全部保存在指定文

bosbear的专栏 784

【使用技巧】测试平台TestComplete的Gherkin场景

本文将结合自动化UI测试平台TestComplete,展示如何利用BDD+Gherkin构建高效的自动化测试流程。

2501_91602431的博客 814

TestComplete总结十一

总结: 1)使用TestApps时, ::第一个参数填写可执行文件的路径; ::第二个参数为该可执行文件执行时的传参;(可以为空) 2)在一些情况下可以把几个变量用加号+连接起来,表示几个连续的动作;如: ::在向浏览器输入网址是,使用On-Screen action,其参数设置两个变量:变量1+变量2。其中变量1为网址,变量2为回车键(写法为[Enter]); 3)文件夹可以当普通文

ONE_DAY_I的专栏 1140

TestComplete视频教程

收到AutomatedQA的一封邮件,邮件中提供了一个TestComplete视频教程(TestComplete Intro Screencast )的连接:http://www.automatedqa.com/video/tc_demo/index.html

软件质量优化 4622

跨平台测试:TestComplete如何成为QA团队的效率引擎

在各个行业数字化转型的实践中,TestComplete 凭借其出色的跨平台测试能力、实用的智能化检测工具以及与开发运维流程的深度集成,被验证为名副其实的“效率引擎”。它不仅简化了从桌面端到移动端的测试管理,更重要的是,通过自动化测试和主动的质量防御机制,显著提升了最终交付的软件质量,优化了团队协作的节奏。

2501_91602431的博客 1421

TestComplete的快捷键

Normal07.8 磅02falsefalsefalseMicrosoftInternetExplorer4<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:

软件质量优化 2674
上一篇: TestComplete的脚本语言
下一篇: 应届毕业生的招聘技巧
TIB
TIB
博客等级 码龄19年 2879粉丝 957原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值