0基础到自动化测试框架实现:java + testng + httpclient + allure,含持续集成
必备基础
java基础:https://www.cnblogs.com/uncleyong/p/15828510.html
maven的使用:https://www.cnblogs.com/uncleyong/p/10743181.html
配置文件解析(properties):https://www.cnblogs.com/uncleyong/p/15867779.html
fastjson的使用(处理json字符串、json数组):https://www.cnblogs.com/uncleyong/p/16683578.html
jsonpath的使用:https://www.cnblogs.com/uncleyong/p/16676791.html
java操作excel(通过POI):https://www.cnblogs.com/uncleyong/p/15867741.html
HttpClient的使用(get、post请求):https://www.cnblogs.com/uncleyong/p/15867745.html
TestNG用法:https://www.cnblogs.com/uncleyong/p/15867747.html
自动化测试框架设计
设计原则
1、数据和代码分离:数据源可以是excel、yaml、xml等,本次选择excel,后续再抽时间更新其它数据源;@DataProvider的返回值类型可以是Object[][]或者Iterator<Object[]>
2、复用性高:公共的方法提取出来
3、维护方便:可变的环境等参数,提取出来放到配置文件中
4、低耦合:灵活应用反射
5、问题追踪:必要的日志记录
6、结果展示:生成测试报告
技术栈
java:封装、泛型、反射、jdbc等
testng:开源测试框架,是从Junit继承而来
httpclient:java提供的与服务端http接口进行交互的库
allure:测试报告
fastjson:处理json字符串、json数组
jsonpath:解析json数据
poi:操作excel
目录结构规划
allure-results:运行后,自动生成的目录
caseData:存放测试数据,比如excel文件
logs:存放日志文件
testngXML:存放testng.xml文件
testReport:存放ExtentTestNGIReporterListener的测试报告,但是这个弃用了,因为allure更主流
逻辑
待扩展功能
上面只是一个基础版,大家可以根据实际使用情况,做进一步的优化
1、文件上传、下载 2、数据库验证 3、yaml数据源 4、。。。
代码实现
详见分享的源码
可凭打卡记录领取,打卡地址:https://www.cnblogs.com/uncleyong/p/15828510.html
使用方式
配置修改
config.properties:配置环境ip、端口
testng.xml:配置测试数据excel文件的路径、sheet名称;测试集(test)、测试类集合(classes)、测试类(class)
测试数据维护
标题行:每个单词首字母大写,因为代码里面用到了反射
关键字段数据填写要求:
Url:只写路径,不需要写ip、端口 RequestType:目前只支持post、get Headers:json格式字符串,如果没有请求头,填写为{} Cookies:预留,暂未使用 Parameters:json格式字符串,如果是非关联变量,填写为#{},如果是关联参数,填写为${} UploadFile:预留,暂未使用 InitSql:初始化sql,要求是json数组,例如:[{"sqlNo":"1","sql":"delete from users where username = 'qzcsbj11';"}] GlobalVariables:需要关联的参数值,样例:token=$.token;,左侧是字段名,右侧是其jsonpath路径,并以英文分号结尾,多个断言字段用英文分号间隔 AssertFields:要断言字段的jsonpath路径以及值,并以英文分号结尾,多个断言字段用英文分号间隔,如:$.code=9550;$.msg=success;
运行
执行testngXML目录下的testng.xml文件即可
allure报告
https://www.cnblogs.com/uncleyong/p/16683084.html
★★★★★【汇总】企业级自动化持续集成
可以整合python、java等自动化框架
git + gitlab + jenkins + pipeline + maven + harbor + docker + k8s
详见:https://www.cnblogs.com/uncleyong/p/16721826.html
【热门测试技术,自学提升推荐】自动化、性能、测开、项目实战、简历、笔试面试、职业规划
详见:https://www.cnblogs.com/uncleyong/p/15777706.html
原文会持续更新,原文地址:https://www.cnblogs.com/uncleyong/p/15867903.html
__EOF__
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevOps/TestOps)、测开等
加薪必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!