lf知识星球banner

测试驱动(接口)自动化语法说明

2018-03-15 16:57:42
admin
22365
最后编辑:Seagull 于 2020-05-28 17:14:18
简介:介绍当你自定义接口驱动时,语法的说明。比如:当你要实现一个hession接口的自动化测试,那么需要你先用JAVA方法实现此接口,此方法有入参(String),有返回(String)。然后你把此方法所在的项目打包成JAR,放到客户端的驱动目录,客户端启动执行时,会自动加载此JAR包。

对于2~5节的内容,同适用于Web UI、移动端、HTTP等类型的自动化测试,在后续的章节中不再单独进行说明。

Web服务端中的系统管理模块里面,有一个客户端管理功能,其中有一个配置驱动目录的选项,会默认有一个驱动目录为/TestDriver,如果你有几个项目在同一个客户端运行,为了避免包冲突的情况,建议您一个项目配置一个驱动目录。

将您打包好的测试驱动JAR包,放置在客户端编译好的项目根目录中的驱动目录下即可。

注意:是 在编译好的项目根目录下的驱动目录中,不是直接放在项目代码目录下的驱动目录

1:普通的方法调用

包|定位路径: Package名.类名 

方法|操作: 方法名

参数: 参数1|参数2|……|参数n


示例:

2:参数引用以及传递

将用例里面前面步骤的执行结果,传递至后续步骤的包路径、方法、参数、预期结果中当成参数; 

赋值局部变量: $=value 

引用: @value  用例里面前面步骤的执行结果,传递至后续步骤的包路径、方法、参数、预期结果中当成参数; 当您需要引用项目中定义的公共参数时,直接使用 @变量名 引用即可。



赋值全局变量: $A= value 

赋值局部变量 $=value,作用域只在单条用例内的步骤间进行传递,而关键字 $A=value 支持作用域扩展到整个任务执行的生命周期内。只要是同一个调度任务内,都可以对此变量进行引用以及传递。


注意:


  • 当遇到参数值里面本身带了字符@的,请使用@@来转义。比如参数值是一个邮箱地址XX@qq.com,那么这时候你应该写成XX@@qq.com.
  • 当遇到参数值里面本身带了字符 | 的,请使用 \\| 来转义。比如有一个参加值是:tfwfsf|ysggfw|ggsvs  ,那么这时候你应该把这个参数写成这样: tfwfsf\\|ysggfw\\|ggsvs



示例:


3:预期结果精确匹配

将用例里面 【方法|操作】 执行的结果,与 【期望的结果】 字段里面的字符串进行精确匹配; 

直接在预期结果里面填写需要匹配的字符串即可。


4:预期结果模糊匹配

将用例里面 【方法|操作】 执行的结果,与 【期望的结果】 字段里面的字符串进行模糊匹配; 

模糊匹配: %=value

示例:

5:正则方式结果模糊匹配

将用例里面 【方法|操作】 执行的结果,与 【期望的结果】 字段里面的字符串通过正则表达式进行匹配; 

模糊匹配: ~=value

正则表达式写法,请自行百度,不再累述。针对多个结果模糊匹配,非包含字符匹配都可以用此种方式,非常灵活。

6:步骤间添加休眠时间

步骤执行完成后,等待 N 秒,在 【步骤动作】 中加上“10#Wait” 10 表示 10 秒; 

更多【步骤动作】说明,请参考3.2.5章节

示例:

评论列表
axiaocong 2020-04-15 18:34:57 回复
在登陆步骤中获取的cookie,保存成变量,在下面请求的请求头里怎么引用这个变量?
Seagull 2020-04-16 13:48:28 回复
http://www.luckyframe.cn/dynamic/lfzsxq-75.html
kim 2020-01-03 16:21:28 回复
请问支持Python编写测试驱动吗?
Seagull 2020-01-07 09:23:39 回复
支持的,在官网右上角搜搜python,有说怎么用python写驱动
2019-12-21 16:13:15 回复
请问能不能提供个接口测试用例模板呢,包含像参数传递,引用,webui中调用api方法,一套可以跑通的模板,
Seagull 2019-12-24 11:56:44 回复
在文章列表中可以找下相关的文章,有写的
苏苏 2019-12-03 22:00:34 回复
还有一个问题就是,添加客户端的时候,只添加IP,不添加端口吗?
Seagull 2019-12-05 14:06:20 回复
端口默认6633
苏苏 2019-12-03 21:58:27 回复
您好!客户端配置那里,是不是就是新增的被测项目的服务地址的IP?但是添加的服务ip每次调试后,客户端状态都是异常的,不知道是什么原因,telnet连都没有问题,望能回复,谢谢大佬
Seagull 2019-12-05 14:17:27 回复
不是的,是Web服务端的IP跟端口
1 2019-12-07 09:50:20 回复
一定要确保内网环境
苏苏 2019-11-25 11:47:19 回复
您好!请问必须要把被测试的项目打成jar包吗?能不能像postman一样,通过配置请求地址、请求路径和入参后执行?
Seagull 2019-11-27 14:24:59 回复
不需要把被测试项目打成jar的,你是不是测试驱动的概念没理解?
苏苏 2019-12-03 21:55:06 回复
您好!是不是客户端配置的IP,就是被测接口项目的服务地址?但是我填写了IP后,感觉获取的IP的状态是失败的
yoyo 2019-10-30 15:28:19 回复
根本没看 明白客户端怎么用,有没有测试的完整例子?
Seagull 2019-10-31 09:18:14 回复
客户端是个执行端,不需要你研究怎么用啊,配置好就行了。
kokoro 2019-10-21 10:15:06 回复
您好,麻烦问下协议模板里的消息头参数可以用公共参数替换么
小飞侠 2019-07-11 15:51:04 回复
我想将返回结果其中的一部分 赋值给 变量 token 怎么写?比如返回结果是 {"code":"OK","token":"zws123666"},我只想把 zws123666 这部分赋值给变量token 如何写
Seagull 2019-07-12 13:56:59 回复
可以的,key[序号]#getJV 获取测试结果中JSON对象中,指定KEY的值,比如测试结果返回:{["name":"张三","age":"18"]["name":"李四","age":"17"]} ,如果想获取李四的年纪 在步骤动作中需要这样写 age[2]#getJV 获取到以后,会拿到17这个值,给预期结果中的关键字进行判断,是匹配,还是赋值都可以。
虫虫 2019-08-14 15:59:44 回复
使用这个方法还是报这个错误,获取JSON字符串指定Key的值是:【获取JSON KEY中的Value异常】格式化成JSON或是JSONArray时出现异常,请检查参数:RESPONSE_HEAD:【{"Server":"nginx","Date":"Wed, 14 Aug 2019 07:44:47 GMT","Content-Type":"application/json; charset=UTF-8","Transfer-Encoding":"chunked","Connection":"keep-alive"}】
Seagull 2019-08-16 15:12:12 回复
指定的KEY值有问题
kk 2019-10-11 19:36:01 回复
是的,总是提示异常,不知道哪里写错了,就照着这个格式写的
yy 2019-10-23 14:58:49 回复
bug,返回的头部信息当做json字符串传入,导致解析json失败
Seagull 2019-10-24 13:42:32 回复
新版本已解决
yy 2019-10-23 13:57:45 回复
有解决么?
Seagull 2019-10-23 17:16:45 回复
新版本中已经解决
2019-12-21 15:35:41 回复
请问如果要赋值是,这样写么(全局变量):$A(sessionid[1]#getJV)=sessionid
另外还有个问题:
在赋值语句写为$A=response 时,
调试日志为什么打印是下面的内容,看着是将请求头一起赋值了,是3,1,1版本:
INFO: 开始调用方法:HttpClientPost .....
INFO: 将测试结果【RESPONSE_HEAD:【{"Server":"nginx/1.16.0","Date":"Sat, 21 Dec 2019 07:34:10 GMT","Content-Type":"application/json","Transfer-Encoding":"chunked","Connection":"keep-alive","Vary":"Cookie","X-Frame-Options":"SAMEORIGIN","Set-Cookie":"sessionid=tsnw241vrbz17tq6uub4uv9n5hqupvvz; expires=Sat, 21-Dec-2019 07:44:10 GMT; Max-Age=600; Path=/"}】 RESPONSE_CODE:【200】 {"sessionid": "tsnw241vrbz17tq6uub4uv9n5hqupvvz"}】赋值给全局变量【response】
INFOover: 用例 TL-1步骤全部执行完成!
多谢解惑;
云海 2019-05-16 13:36:15 回复
client端怎么debug
Seagull 2019-05-16 17:14:43 回复
client端有提供debug的方法,在IDE中可以debug的
云海 2019-05-27 09:49:29 回复
我在intellij中要debug客户端,要怎么配置才能打断点debug。启动的时候不是在本地环境中么
Seagull 2019-05-28 11:28:06 回复
客户端中有提供debug的方法跟类,详情可以官网搜索下调试关键字
1/2
发表评论
评论通过审核后显示。
付费知识圈