2023年6月29日发(作者:)
接⼝⾃动化测试基本流程及测试思路接⼝⾃动化⼤致步骤:1、发送请求2、解析结果3、验证结果定义三个和业务相关的类1、⼀个⽤来封装HTTPclient,⽤来发送请求2、解析结果xml的类3、⼀个⽤于⽐较测试结果和期望值的类,⽤于验证4、⾃动⽣成报告的类:⾃动发送报告之类的(locust的python⼯具)服务级:Web server(服务) Database(持久化⼯具-数据库)、Cache(短时间持久化⼯具-缓存)接⼝测试:1、构造数据(1)通过接⼝构造⽐如获取⼀个blog的⽂章信息,怎么构造数据呢?(⽂章哪⾥来??)—返回blog信息通过添加⽂章的接⼝,临时构造数据(blog⽂章),然后断⾔的时候看看是不是⾃⼰造的数据——会造成接⼝耦合(两个程序模块有关联就叫做耦合。)—和造⽂章的接⼝耦合(如果创建⽂章的接⼝挂了,那返回blog信息的接⼝也就挂了)公交卡充值依赖⽀付宝的⽀付接⼝服务,调⽤⽀付接⼝会有代价,所以模拟⼀个⽀付接⼝,所有通过mockserver(测试桩)去模拟⽀付接⼝的服务----不管输⼊是什么,返回⼀直成功或是固定的(2)通过持久化层构造(更好)意思就是在数据库直接插⼊数据2、调⽤接⼝postman/jmeter–winCURL-linuxPaw–mac3、对接⼝返回进⾏断⾔通过不同的输⼊-判断不同的预期----数据驱动(输⼊数据)断⾔参考⽅法:对⽐数据库值,code验证4、接⼝测试的⽤例设计功能测试⽤例业务逻辑设计业务逻辑⽅⾯的测试⽤例主要是针对服务端接⼝的处理逻辑进⾏的⽤例设计,这种⽤例设计不是针对某个功能点是否实现,⽽是对接⼝的处理逻辑以及⼀些相互依赖的业务进⾏验证,通常依照接⼝的逻辑流程图来进⾏。举⼀个例⼦,购物系统中的两个动作:登录和下单操作,这两个业务是相互依赖的,下单操作必须在登录完成后(登录状态下),否则⽆法完成下单,这个时候我们就可以设计这样⼀条case:没有登录的状态下进⾏下单操作,看服务端如何处理。可以看到这⼀块有两个判断,我们需要对不同的判断分⽀都设计⽤例,以保证流程图中涉及到的分⽀我们都有测试⽤例覆盖。图中涉及到的不同的分⽀有:;;;相应的,我们的⽤例就应该是:fo != null && value(userGroup) != 0;fo == null;fo != null && value(userGroup) == 0;业务逻辑的⽤例设计主要是以服务端接⼝内部的逻辑流程图为基础,针对流程图中的判断和分⽀进⾏⽤例设计,保证服务端接⼝的每⼀种逻辑下都有测试⽤例覆盖。异常处理情况服务端接⼝和客户端之间通常是通过HTTP请求来传递数据,在发送请求的时候,客户端会携带各种不同的参数,此时服务端会根据不同的参数进⾏不同的处理,所以异常处理主要是针对请求中的参数情况:⽐如参数增加和缺省、参数的数据类型错误,参数携带错误的值、参数为空等等,这需要我们根据接⼝⽂档中各种不同的参数去构造不同的参数异常,检查服务端的响应情况。性能和安全性⽅⾯服务器的性能往往是个⾮常重要的关注点,在实际的测试中我们主要关注的是接⼝的QPS数值,以及CPU和内存占⽤等性能指标,通常借助于其他⼯具⽐如LoadRunner进⾏性能测试。安全性⽅⾯,主要考虑⼀些常见的安全策略⽐如请求加密、sql注⼊等等。⼆、接⼝测试实例1、postman测试2、python测试1 # coding:utf-8 2 import requests,unittest 3 class V2ETestCase(se): 4 def test_ger_node_api(self): 5 python_node_id = 90 6 url = "/api/nodes/" 7 node_name = 'python' 8 querystring = {"name":node_name} 9 res = t("GET", url, params=querystring).json()10 print res11 Equal(res['id'],python_node_id)12 Equal(res['name'], node_name)13
14 if __name__=='__main__':15 ()在命令⾏运⾏(以后做⾃动化测试⽤):报告可以⽣成HTML形式的-加进去python为例:unittest库Requests库JsonDict字典assert断⾔⽤postman做接⼝测试,选择get还是post,加⼊数据发送请求,查看返回的结果—然后给接⼝做断⾔(点右上⾓的code,选择js语⾔,写断⾔)当接⼝返回的数据时动态的,⽐如⼀个⽹站⽂章的最新评论----还是测试环境问题,搭建⼀个专属的测试环境,不产⽣新的数据,⼀样的可以测试接⼝—相当于动态数据静态化“怎么做接⼝测试”这个问题可以分解为两个问题:怎么设计接⼝测试⽤例?怎么执⾏接⼝测试?怎么执⾏接⼝测试?Fiddler、SOAPUI、PostMan等可以做半⾃动的接⼝⾃动化测试;使⽤Robot Framework做全⾃动化的接⼝⾃动化测试;⾃⼰⽤代码做全⾃动的接⼝⾃动化测试,如Java+testNG;⾃动化接⼝测试+⽣成报告思路:在接⼝的开始测试阶段,我⽤POSTMAN来⼿⼯测试接⼝,单⼀接⼝测试通过后,把测试⽤例Copy到Jmeter中,作为后续的定期执⾏的基础,在接⼝⼿⼯全部测完后,⽤Jmeter+Ant+Jenkins来定期检查每天的接⼝,并⽣成测试报告,再写⼀个爬⾍每天监控测试报告,如果出现了异常,发邮件报警。1、每天的历史报告肯定也是需要留存的2、有案例失败时的邮件通知Jenkins有邮件报警和report展⽰的插件~ 楼主不⽤⾃⼰写。。。最后应该就是测试报告了,集成于⾃动化的接⼝测试,每天的接⼝测试报告也是挺重要的,Jmeter的测试报告虽然也很清楚,但是并不是我想要的东西,我理想的测试报告应该有⼀下那么两点测试通过率每条测试的过程展⽰测试通过率是⽅便查看报告的⼈直观的了解本次测试的结果。测试过程的展⽰需要展⽰如下内容:测试结果、请求地址、输⼊参数、输出结果、断⾔结果。并且成功和失败的标识需要⾮常明显。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1687986638a64062.html
评论列表(0条)