jmeter正则表达式基础语法

哭成小猪头~ 2019-12-17 08:52:08
        jmeter里接口请求结束后,如果后续接口请求想要获取本次返回结果的内容,就需要正则表达式提取器来获取参数,当然也可以用json path extractor来提取(这个简单一些)。不过Jmeter里很多地方的约束条件和断言都是需要正则表达式来匹配的,所以大家还是要学习一下正则表达式的语法,以便更好更效率的完成测试内容。下面简单介绍一下常用的语法,这次先写一半,下次再补另一半。正则表达式的内容还是很多的,我也只是学了其中的一些皮毛,通用的东西,后期再慢慢深入吧,而且要学以致用,学的东西一定要亲自实际体验一下才会记得牢,好了,言归正转。   我参考的网站是deerchao.net,作者真是伟大,文章也很幽默,也是老资格的人了,哈哈。也可以直接忽略我的文章,直接看大牛的文章学习。那这里我就直接从字符匹配的语法来进行实例讲解了,可以下载网站里的正则表达式测试工具,直接在工具里体验。 下面列举元字符语法: 1.\bhi\b : 匹配只有hi的字符,\b代表的位置,第一个\b代表单词开始的位置,第二个\b代表单词结束的位置 2.\bhi\b.*\bthis\b : 匹配hi的字符后,中间有任意个字符后,后面是this的字符 3. . : 表示任意字符的元字符 4. *:表示任意数量的元字符 5. \d : 表示任意一个数字 6. \d{2}: 表示任意一个数字出现两次,相当于\d\d 7. \s : 匹配任意的空白符,包括空格,换行符,制表符(tab),中文全角空格 8. \w : 匹配字母,数字,下划线或汉字 9. \d+ : 匹配一个或更多连续的数字 10. \b\w{2}\b : 匹配刚好有两个字符的单词 11. \b : 匹配单词的开始和结束 12. ^ : 匹配字符串的开始 13. $ : 匹配字符串的结束, 例: ^\d{2,5}$ 表示输入的数字必须是2位(包含)到5位(包含)之间 14. \ : 转义字符,如果要查找元字符就需要用转义字符来完成,比如: deerchao\.net 实际上是deerchao.net 15. 重复次数说明: *是重复0次或多次,+是重复1次或多次,?是重复零次或一次,{n} 是重复n次,{n,}是重复n次到多次,{n,m}是重复n次到m次 16. [] : 括号里的字符会被匹配,比如[ab]匹配a或b字符,[,?]匹配逗号或问号 17. [a-z0-9A-Z] : 相当于匹配\w 18. | : 匹配或规则。比如: 0\d20\d2[- ]?\d{8}|0\d30\d3[- ]\d{7}|0\d{2}[- ]?\d{8}|0\d{3}[- ]?\d{7} 这个就是匹配电话号码的,如:012-56236562, 0536-1234567,(0536)-1234567,01212345678 19. ():匹配分组,255.134.123.123 或 193.168.1.1 匹配表达式为: (([01]?\d\d?|25[0-5]|2[0-4]\d)\.){3}([01]?\d\d?|25[0-5]|2[0-4]\d) 20. \W : 匹配任意不是字母,数字,下划线,汉字的字符 21. \S : 匹配任意不是空白符的字符 22. \D : 匹配任意非数字的字符 23. \B : 匹配不是单词开头或结尾的位置 24. [^x] : 匹配除了x以外的任意字符 25. [^aeiou] : 匹配除了aeiou以外的任意字符 26. (?<word>\w+) 或(?'word'\w+) 后向引用,用于重复搜索前面某个分组已经匹配的文本,引用时就可以写成\k<word>。实际上分组0对应整个正则表达式;组号分配过程是从左到右分配两遍的,第一遍先扫描未命名的分组,第二遍扫描已命名的分组,所以命名分组的组号永远大于未命名分组的组号的; 可以用(?:exp)来剥夺组号分配的参与权 27. 分组命名的几种语法: (exp) 匹配exp表达式并将文本匹配的内容自动分配到分组里; (?<name> exp)匹配exp表达式里的文本内容到name组名下,也可以写成(?'name'exp); (?:exp)匹配exp表达式里内容,但是不捕获匹配的文本也不给匹配的文本分配组号;(?=exp)匹配exp前面的位置; (?<=exp)匹配exp后面的位置 ; (?!exp)匹配后面不是exp的位置 ; (?<!exp) 匹配前面不是exp的位置; (?#comment)添加注释,对正则表达式没有任何影响; 28. (?=exp)与(?<=exp)为零宽断言,其中(?=exp)为零宽度正预测先行断言,(?<=exp)为零宽度正回顾后发断言。(?=exp)表示自exp断言表达式出现的位置开始匹配断言之前的内容,如\b\w+(?=er\b) 源文件为tester,则匹配结果为:test。(?<=exp)表示自exp断言表达式内容结束后的位置开始匹配后面的内容,如(?<=test)\w+\b 源文件为test, 则匹配结果为:er。   以上只列表了基本的正则表达式一半的元字符语法,后面再继续第二部分的编写。
...全文
163 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
传说三哥 2020-04-21
  • 打赏
  • 举报
回复
https://edu.csdn.net/course/detail/22948

5,174

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 质量管理/软件测试
功能测试压力测试安全性测试 个人社区 湖南省·长沙市
社区管理员
  • 软件测试
  • 虫无涯
  • 小博测试成长之路
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎大家加入到软件测试的社区,在这里,希望大家勇于发表自己的看法,欢迎大家分享自己在软件测试工作过程中遇到的问题以及工作经验分享。

1.想转行的小伙伴,遇到问题没有及时回复的,可以私聊小博进行反馈

2.大家对社区有好的建议,都可以在社区发帖进行反馈

推荐大家学习的软件测试入门笔记:软件测试入门学习笔记

试试用AI创作助手写篇文章吧