- test ui-04-testcomplete 入门介绍
老马啸西风
testuiseleniumappium单元测试测试工具
AboutTestCompleteTestComplete是一款适用于各种应用程序类型和技术的自动化测试环境,包括(但不限于)Windows、.NET、WPF、VisualC++、VisualBasic、Delphi、C++Builder、Java以及Web应用程序和服务。TestComplete既适用于功能测试,也适用于单元测试。它提供卓越的支持,可用于日常回归测试,并支持许多其他类型的测试:数
- 移动app、接口、web自动化测试区别
小码哥说测试
软件测试自动化测试技术分享自动化软件测试测试工程师python接口测试
先说说WEB的UI自动化测试:很多人在说自动化测试的时候,基本上现在指的是WEB的UI自动化测试,但其实这是不对的,自动化测试包含了很多开发的技术,不只是界面上的自动化测试。WEB的UI自动化测试只是其中的一种,但它的工具确实最多的,有WINRUNNER\QTP(UFT)\TESTCOMPLETE\SILKTEST\ROBOT\SELENIUM\RF\WAITER等等。而对于没有开发基础的测试人员
- 简化测试流程,提供卓越服务:TestComplete+Salesforce满足不断发展的企业的需求
测试
2015年,一群前Salesforce员工发现了病毒防护市场中的一个空白:Salesforce不会对文档进行威胁扫描。为了填补这一空白,他们创建了一个平台,并以该平台作为中心帮助公司保护所有的企业云SaaS系统,使其免受威胁。这个平台获得了巨大的成功,这些前Salesforce员工创办了一家SaaS领域的公司。为了有效地测试Salesforce,他们需要一个更好的解决方案来满足不断发展的公司的需求
- Test Execute+ license +automation environment
爱喝皮蛋瘦肉粥的老黑
环境配置TestExecuteLicense
国内貌似很少用TestComplete和TestExecute做自动化,TestComplete是用来写测试脚本,TestExecute是用来在虚拟机中执行脚本的工具,当TestExecute在启动时,会自动去licenseserver找license。前一段时间公司的licenseserver地址变了,那么就需要用脚本来更改虚拟机中的licenseserver信息。那自动化更改脚本需要两个步骤1
- 2023上海国际嵌入式展 | 如何通过版本控制与IP管理建立嵌入式开发的单一可信数据源
龙智DevSecOps解决方案
版本控制版本管理静态代码扫描嵌入式开发
2023年6月14日到16日,领先的DevSecOps解决方案提供商龙智将在2023上海国际嵌入式展(embeddedworldchina2023)A055展位亮相。首次参展,龙智为企业带来全面的嵌入式行业解决方案,集成HelixCore、HelixQAC、Klocwork、HelixALM、MethodicsIPLM、TestComplete和ReadyAPI等产品,覆盖静态代码分析、版本控制、
- 简化测试流程,提供卓越服务:TestComplete+Salesforce满足不断发展的企业的需求
龙智DevSecOps解决方案
自动化
2015年,一群前Salesforce员工发现了病毒防护市场中的一个空白:Salesforce不会对文档进行威胁扫描。为了填补这一空白,他们创建了一个平台,并以该平台作为中心帮助公司保护所有的企业云SaaS系统,使其免受威胁。这个平台获得了巨大的成功,这些前Salesforce员工创办了一家SaaS领域的公司。为了有效地测试Salesforce,他们需要一个更好的解决方案来满足不断发展的公司的需求
- 简化测试流程,提供卓越服务:TestComplete+Salesforce满足不断发展的企业的需求
测试
2015年,一群前Salesforce员工发现了病毒防护市场中的一个空白:Salesforce不会对文档进行威胁扫描。为了填补这一空白,他们创建了一个平台,并以该平台作为中心帮助公司保护所有的企业云SaaS系统,使其免受威胁。这个平台获得了巨大的成功,这些前Salesforce员工创办了一家SaaS领域的公司。为了有效地测试Salesforce,他们需要一个更好的解决方案来满足不断发展的公司的需求
- 程序猿新手学习必备的Python工具整合
目录1.IDLE使得在Python中入门变得非常简单2.Scikit-learnscikit-learn是一个建立在Scipy基础上的用于机器学习的Python模块3.TheanoTheano是一个较为老牌和稳定的机器学习python库之一4.SeleniumSelenium是自动化的最佳python工具之一5.Testcomplete支持Web、移动和桌面自动化测试的自动化比较好的Python工
- 移动app、接口、web自动化测试区别
piooix
app测试
先说说WEB的UI自动化测试:很多人在说自动化测试的时候,基本上现在指的是WEB的UI自动化测试,但其实这是不对的,自动化测试包含了很多开发的技术,不只是界面上的自动化测试。WEB的UI自动化测试只是其中的一种,但它的工具确实最多的,有WINRUNNER\QTP(UFT)\TESTCOMPLETE\SILKTEST\ROBOT\SELENIUM\RF\WAITER等等,。而对于没有开发基础的测试人
- 自动化的testComplete测试框架和测试基础1
xtgdys
testcomplete
先说工具:Testcomplete8为Windows、.NET、Java和Web应用程序提供特性全面的自动化测试环境。具有系统化、自动化和结构化特性,支持.NET,Java,VisualC++,VisualBasic,Delphi,C++Builder和web应用程序。能够以关键字测试(Keywordtests)或者脚本(Script)测试的形式创建功能测试。同时,TC在对象识别的基础上,可以采用
- TestComplete的对象驱动测试方法
TIB
TestComplete
TestComplete的对象驱动测试方法陈能技2007-9-4自动化测试脚本的创建其实主要是编程任务。如果测试不需要加载数据,主要目的是测试一个对象而已(例如一个窗体),那么你可以写一两个脚本使用几个本地变量或全局变量就可以了。但是,大部分测试项目会很大,包括很多脚本单元并使用很多的测试数据,在这种情况下,如果使用面向对象的方式编程就会变得逻辑上简单点。例如为每个测试窗体创建一个对象,使用这些对
- TestComplete实测Flex
hwh212
软件测试
1、TestComplete提供了已经编译好的Flex界面,可以直接使用:http://support.smartbear.com/samples/testcomplete9/flex/orders.html打开即可测试。2、TestComplete已经有了写好的代码,位于TestComplete9Samples\OpenApplications\Flex下,其中有多种语言编写的代码,可以参考。使
- TestComplete数据驱动测试教程(三)——修改记录测试
weixin_34407348
TestComplete是一款具有人工智能的自动UI测试工具,利用自动化测试工具和人工智能支持的混合对象识别引擎,轻松检测和测试每个桌面,Web和移动应用程序。本文中我们将讲解如何进行数据驱动的测试,方便大家更快更直接的学习TestComplete的使用。本教程包含两个方面的讲解,可以帮助你从脚本或关键字测试创建数据驱动的测试。今天接着讲解如何在关键字测试中修改记录测试。>>下载最新版TestCo
- TestComplete 调用powershell 和cmd并获取屏幕输出
小熊妞
TestComplete软件测试
1.Runpowershell命令并捕获屏幕输出:functionRunPowerShell(){varoShell=Sys.OleObject("WScript.Shell");//oroShell=WshShellvaroExec=oShell.Exec("powershell-command$PSVersionTable.PSVersion.Major");oExec.StdIn.Close
- 自动化测试与脚本编写能力
有雾有水
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!看AutomatedQA的网站介绍TestComplete的文字:TestCompleteisanautomatedtestmanager,withprojectlevelsupportforthefullran
- testcomplete文件处理aqFile、aqFileSystem
米菲的泰迪
自动化
#语言:JavaScript(注意与JScript区别)functiontest(){varfolderHave2file="C:\\Users\\test\\Desktop\\aqfile\\2files";varfolderHave0file="C:\\Users\\test\\Desktop\\aqfile\\null";varfile1="C:\\Users\\test\\Desktop\
- 如何快速搭建Web自动化测试框架
测试开发栈
一、写在前面的话在使用WebDriver框架之前,我先后使用了其他两款自动化测试框架,IBMRationalRobot(历史悠久的老牌自动化工具)与TestComplete(功能强大,可支持Web、移动端和桌面程序自动化测试的付费工具),相比较于WebDrIver,它们对于自动化脚本开发者而言都不够“开放”(可扩展)和“自由”(可封装),或多或少都有一些局限性,当然这样并不是说WebDriver就
- 移动app、接口、web自动化测试区别
alston123
先说说WEB的UI自动化测试:很多人在说自动化测试的时候,基本上现在指的是WEB的UI自动化测试,但其实这是不对的,自动化测试包含了很多开发的技术,不只是界面上的自动化测试。WEB的UI自动化测试只是其中的一种,但它的工具确实最多的,有WINRUNNER\QTP(UFT)\TESTCOMPLETE\SILKTEST\ROBOT\SELENIUM\RF\WAITER等等。而对于没有开发基础的测试人员
- Jenkins中构建Testcomplete项目的方法介绍
一点空白
Jenkins的部署在上一篇随笔中已经和大家介绍了,下面我们介绍一下再Jenkins中构建testcomplete项目。我这里使用的是Testcomplete11,下面详细介绍一下构建步骤。1、Jenkins中Testcomplete插件安装首先下载Jenkins中所需的testcomplete插件(Jenkins插件管理中也可以进行下载安装,但是为了找到最适合版本的插件我们采用先下载插件后安装的
- TestComplete实测Flex
Flex
1、TestComplete提供了已经编译好的Flex界面,可以直接使用:
http://support.smartbear.com/samples/testcomplete9/flex/orders.html
打开即可测试。
2、TestComplete已经有了写好的代码,位于TestComplete 9 Samples\Open Applications\Flex下,
其中有多种语言
- TestComplete如何识别对象
test
From http://softtest.chinaitlab.com/qita/746669.html
GUI测试工具的基本原理就是识别出被测试的对象,记录对象的操作,加入测试逻辑的编辑,回放脚本。
那么对测试对象的识别能力就成为一个GUI测试工具的最基本功能了。本文介绍TC是如何识别进程、窗体和控件的。
命名概念
为了在脚本中记录识别出来的测试对象,TC需要使用到这些对
- TestComplete - Study Note 4 - Run Test
test
After all of the scripts are ready, we can sort out all of them in current project, and create new test item using them, and assign the test items in different groups.
There are 5 tabs: Test Items, V
- TestComplete - Study Note 3 - Script
script
We can record a script or convert a keyword test to script or write a script directly. The former is much simpler.
For general test, Keyword test is enough. But when we need to verify the data change
- TestComplete - Study Note 1 - Structure
struct
1. Structure:
2. Details:
Tested Apps: The TestedApps editor lets you view and configure a list of tested applications defined in the given TestComplete project. (Required) See hel
- TestComplete Date Driven Testing學習筆記
Date
1. 將數據從腳本中分離出來; 2. Date Driven數據驅動:腳本從外部存儲點讀入數據,如一個文件或數據庫; 3. Date Driven Stp: a. 从存储点读入数据 b. 在软件窗体上输入数据 c. 检验结果 d. 用下一项数据继续执行
- Jscript file operate
script
在使用自动化测试工具的时候大家可能都有这样的感受:工具的操作都比较简单,复杂是编制测试脚本。当然,要真正掌握自动化测试的核心那么我们必须精通至少一种脚本语言。TestComplete支持VBScript、JavaScript、DelphiScript、C++Script和C#Script五中脚本语言,可以说是目前支持脚本语言最多的自动化测试工具之一。不同的人在使用这个测试工具时可能会使用不同的脚本
- 自动化测试网站
自动化测试
看到一个自动化测试的网站,记录一下:
有一下几个产品:
TestComplete
AQtime
Automated Build Studio
AQdevTeam
这里还有一个很好的自动化测试的PPT:
http://www.automatedqa.com/community/
参考文章:
http://dragon.cnblogs.com/archive/20
- 自定义脚本运行TestComplete项目
孤月2012
jsbatvbs自动化测试TestComplet
TestComplete作为一个软件自动化测试的IDE,留有少量接口供不同的人在不同的场景下运行项目,那么如何通过脚本去简化和更加智能的启动它并执行它的项目呢?下面是TestComplete提供的Commandline:TestComplete.exe [file_name [/run [(/project:project_name) | (/project:project_name /proje
- 自定义脚本运行TestComplete项目
孤月2012
jsbatvbs自动化测试TestComplet
TestComplete作为一个软件自动化测试的IDE,留有少量接口供不同的人在不同的场景下运行项目,那么如何通过脚本去简化和更加智能的启动它并执行它的项目呢?下面是TestComplete提供的Commandline:TestComplete.exe [file_name [/run [(/project:project_name) | (/project:project_name /proje
- 自定义脚本运行TestComplete项目
孤月2012
jsbatvbs自动化测试
TestComplete作为一个软件自动化测试的IDE,留有少量接口供不同的人在不同的场景下运行项目,那么如何通过脚本去简化和更加智能的启动它并执行它的项目呢?下面是TestComplete提供的Commandline:TestComplete.exe[file_name[/run[(/project:project_name)|(/project:project_name/projectitem
- 算法 单链的创建与删除
换个号韩国红果果
c算法
先创建结构体
struct student {
int data;
//int tag;//标记这是第几个
struct student *next;
};
// addone 用于将一个数插入已从小到大排好序的链中
struct student *addone(struct student *h,int x){
if(h==NULL) //??????
- 《大型网站系统与Java中间件实践》第2章读后感
白糖_
java中间件
断断续续花了两天时间试读了《大型网站系统与Java中间件实践》的第2章,这章总述了从一个小型单机构建的网站发展到大型网站的演化过程---整个过程会遇到很多困难,但每一个屏障都会有解决方案,最终就是依靠这些个解决方案汇聚到一起组成了一个健壮稳定高效的大型系统。
看完整章内容,
- zeus持久层spring事务单元测试
deng520159
javaDAOspringjdbc
今天把zeus事务单元测试放出来,让大家指出他的毛病,
1.ZeusTransactionTest.java 单元测试
package com.dengliang.zeus.webdemo.test;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import
- Rss 订阅 开发
周凡杨
htmlxml订阅rss规范
RSS是 Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site Summary的缩写,1.0与2.0走的是两个体系)。
RSS
- 分页查询实现
g21121
分页查询
在查询列表时我们常常会用到分页,分页的好处就是减少数据交换,每次查询一定数量减少数据库压力等等。
按实现形式分前台分页和服务器分页:
前台分页就是一次查询出所有记录,在页面中用js进行虚拟分页,这种形式在数据量较小时优势比较明显,一次加载就不必再访问服务器了,但当数据量较大时会对页面造成压力,传输速度也会大幅下降。
服务器分页就是每次请求相同数量记录,按一定规则排序,每次取一定序号直接的数据
- spring jms异步消息处理
510888780
jms
spring JMS对于异步消息处理基本上只需配置下就能进行高效的处理。其核心就是消息侦听器容器,常用的类就是DefaultMessageListenerContainer。该容器可配置侦听器的并发数量,以及配合MessageListenerAdapter使用消息驱动POJO进行消息处理。且消息驱动POJO是放入TaskExecutor中进行处理,进一步提高性能,减少侦听器的阻塞。具体配置如下:
- highCharts柱状图
布衣凌宇
hightCharts柱图
第一步:导入 exporting.js,grid.js,highcharts.js;第二步:写controller
@Controller@RequestMapping(value="${adminPath}/statistick")public class StatistickController { private UserServi
- 我的spring学习笔记2-IoC(反向控制 依赖注入)
aijuans
springmvcSpring 教程spring3 教程Spring 入门
IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明:
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe
- TLS java简单实现
antlove
javasslkeystoretlssecure
1. SSLServer.java
package ssl;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.KeyStore;
import
- Zip解压压缩文件
百合不是茶
Zip格式解压Zip流的使用文件解压
ZIP文件的解压缩实质上就是从输入流中读取数据。Java.util.zip包提供了类ZipInputStream来读取ZIP文件,下面的代码段创建了一个输入流来读取ZIP格式的文件;
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));
&n
- underscore.js 学习(一)
bijian1013
JavaScriptunderscore
工作中需要用到underscore.js,发现这是一个包括了很多基本功能函数的js库,里面有很多实用的函数。而且它没有扩展 javascript的原生对象。主要涉及对Collection、Object、Array、Function的操作。 学
- java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)
bijian1013
javajvmjstatd
1.介绍
jstatd是一个基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。
jstatd是基于RMI的,所以在运行jstatd的服务
- 【Spring框架三】Spring常用注解之Transactional
bit1129
transactional
Spring可以通过注解@Transactional来为业务逻辑层的方法(调用DAO完成持久化动作)添加事务能力,如下是@Transactional注解的定义:
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed under the Apache License, Version
- 我(程序员)的前进方向
bitray
程序员
作为一个普通的程序员,我一直游走在java语言中,java也确实让我有了很多的体会.不过随着学习的深入,java语言的新技术产生的越来越多,从最初期的javase,我逐渐开始转变到ssh,ssi,这种主流的码农,.过了几天为了解决新问题,webservice的大旗也被我祭出来了,又过了些日子jms架构的activemq也开始必须学习了.再后来开始了一系列技术学习,osgi,restful.....
- nginx lua开发经验总结
ronin47
使用nginx lua已经两三个月了,项目接开发完毕了,这几天准备上线并且跟高德地图对接。回顾下来lua在项目中占得必中还是比较大的,跟PHP的占比差不多持平了,因此在开发中遇到一些问题备忘一下 1:content_by_lua中代码容量有限制,一般不要写太多代码,正常编写代码一般在100行左右(具体容量没有细心测哈哈,在4kb左右),如果超出了则重启nginx的时候会报 too long pa
- java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶
bylijinnan
java
import java.util.Stack;
public class ReverseStackRecursive {
/**
* Q 66.颠倒栈。
* 题目:用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。
* 颠倒之后的栈为{5,4,3,2,1},5处在栈顶。
*1. Pop the top element
*2. Revers
- 正确理解Linux内存占用过高的问题
cfyme
linux
Linux开机后,使用top命令查看,4G物理内存发现已使用的多大3.2G,占用率高达80%以上:
Mem: 3889836k total, 3341868k used, 547968k free, 286044k buffers
Swap: 6127608k total,&nb
- [JWFD开源工作流]当前流程引擎设计的一个急需解决的问题
comsci
工作流
当我们的流程引擎进入IRC阶段的时候,当循环反馈模型出现之后,每次循环都会导致一大堆节点内存数据残留在系统内存中,循环的次数越多,这些残留数据将导致系统内存溢出,并使得引擎崩溃。。。。。。
而解决办法就是利用汇编语言或者其它系统编程语言,在引擎运行时,把这些残留数据清除掉。
- 自定义类的equals函数
dai_lm
equals
仅作笔记使用
public class VectorQueue {
private final Vector<VectorItem> queue;
private class VectorItem {
private final Object item;
private final int quantity;
public VectorI
- Linux下安装R语言
datageek
R语言 linux
命令如下:sudo gedit /etc/apt/sources.list1、deb http://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu/ precise/ 2、deb http://dk.archive.ubuntu.com/ubuntu hardy universesudo apt-key adv --keyserver ke
- 如何修改mysql 并发数(连接数)最大值
dcj3sjt126com
mysql
MySQL的连接数最大值跟MySQL没关系,主要看系统和业务逻辑了
方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可
方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppass
- 单一功能原则
dcj3sjt126com
面向对象的程序设计软件设计编程原则
单一功能原则[
编辑]
SOLID 原则
单一功能原则
开闭原则
Liskov代换原则
接口隔离原则
依赖反转原则
查
论
编
在面向对象编程领域中,单一功能原则(Single responsibility principle)规定每个类都应该有
- POJO、VO和JavaBean区别和联系
fanmingxing
VOPOJOjavabean
POJO和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Plain Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比POJO复杂很多,JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被
- SpringSecurity3.X--LDAP:AD配置
hanqunfeng
SpringSecurity
前面介绍过基于本地数据库验证的方式,参考http://hanqunfeng.iteye.com/blog/1155226,这里说一下如何修改为使用AD进行身份验证【只对用户名和密码进行验证,权限依旧存储在本地数据库中】。
将配置文件中的如下部分删除:
<!-- 认证管理器,使用自定义的UserDetailsService,并对密码采用md5加密-->
- mac mysql 修改密码
IXHONG
mysql
$ sudo /usr/local/mysql/bin/mysqld_safe –user=root & //启动MySQL(也可以通过偏好设置面板来启动)$ sudo /usr/local/mysql/bin/mysqladmin -uroot password yourpassword //设置MySQL密码(注意,这是第一次MySQL密码为空的时候的设置命令,如果是修改密码,还需在-
- 设计模式--抽象工厂模式
kerryg
设计模式
抽象工厂模式:
工厂模式有一个问题就是,类的创建依赖于工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则。我们采用抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。
总结:这个模式的好处就是,如果想增加一个功能,就需要做一个实现类,
- 评"高中女生军训期跳楼”
nannan408
首先,先抛出我的观点,各位看官少点砖头。那就是,中国的差异化教育必须做起来。
孔圣人有云:有教无类。不同类型的人,都应该有对应的教育方法。目前中国的一体化教育,不知道已经扼杀了多少创造性人才。我们出不了爱迪生,出不了爱因斯坦,很大原因,是我们的培养思路错了,我们是第一要“顺从”。如果不顺从,我们的学校,就会用各种方法,罚站,罚写作业,各种罚。军
- scala如何读取和写入文件内容?
qindongliang1922
javajvmscala
直接看如下代码:
package file
import java.io.RandomAccessFile
import java.nio.charset.Charset
import scala.io.Source
import scala.reflect.io.{File, Path}
/**
* Created by qindongliang on 2015/
- C语言算法之百元买百鸡
qiufeihu
c算法
中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁,母,雏各几何?
代码如下:
#include <stdio.h>
int main()
{
int cock,hen,chick; /*定义变量为基本整型*/
for(coc
- Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode
wyz2009107220
NameNode
正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋。本文讨论一下为了解决这个问题而存在的几个solution。
1. Secondary NameNode
原理:Secondary NN会定期的从NN中读取editlog,与自己存储的Image进行合并形成新的metadata image
优点:Hadoop较早的版本都自带,