接口自动化知识梳理
Posted 软件测试小dao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口自动化知识梳理相关的知识,希望对你有一定的参考价值。
接口自动化知识梳理
学习知识块:基础知识 类与对象 单元测试 requests openpyxl pandas re ddt unittest mysql logging
框架梳理
学习方式:靠时间堆 思考清楚
http请求类:写2组数据在Python里面。
单元测试类:写2组数据在Python里面。
解决数据的分离:数据写到Excel里面去。
解决参数的依赖关系。
解决参数的自动化做参数的问题。
数据库校验 期望结果。
学习目的
1.加深对自动化的理解:功能自动化。
2.需求分析。
3.掌握数据分离/代码分离/文件分离的概念。
1.为什么要去做自动化?
自动化的本质是让工作更加方便轻松。
稳定性测试,维护性测试,回归测试的时候用自动化。
新加的功能不可以做自动化,必须手工去做。
例如如果参数替换格式不对怎么办?
如果这个参数是不必要做参数化的,对数据的格式有强烈的要求,这样的情况建议不做参数化。
设计自动化的时候:框架非常重要,思路也很重要。
2.测试数据
放哪:excel–DoExcel 专门负责读取数据。
怎么读:用例的可配置。
参数化:每次会自动的更新测试数据–省去手工操作。
特殊点:注册手机号的处理。
Excel写一个初始化手机号。
sql语句查询当前存在的最大的手机号,在此基础上+1.
写死的手机号—不推荐。
数据的替换:参数化之后–读取数据时要进行替换。
期望结果:参数化的地方做好替换。
实际结果:
写入Excel里面去。
利用断言与期望结果做比对。
测试结论:
通过就pass,不通过就fail,同步写入测试结果进去。
3.接口自动化测试思路
1.利用单元测试去执行用例。
2.把测试数据和测试结果存在Excel里面。
3.把整个代码的运行过程放在日志里面。
4.执行的报告会生成html。
5.利用ddt还有其它的一些处理方式。
第一步考虑测试数据,测试数据不仅包括我请求的那些数据,包括针对不同的模块,如果尽可能想用参数化的话,比如地址,参数,期望结果,实际结果等这些都可以存到Excel里面去。
这样做就是为了提高代码的复用性,让它的改动尽量少一点。不管哪个模块的用例,都可以用这套框架去跑。
把数据放进去只是第一步,怎么去读,怎么去执行,执行哪一些?都涉及一个可配置,也就是让用例活起来。
4.参数化:标记。
通过代码处理数据,链接数据库,自动更新。
手机号注册:手机号+1
或者去数据库查询一个最大的手机号去做操作。
5.数据的处理:包含请求数据和请求结果。
怎么去写回,怎么去做,怎么去把它写进去,怎么去定义这个结果。
6.ddt
拿到数据进行拆分,方便拿到多少数据就执行多少条用例。
7.数据库校验
不同的数据库需要不同的数据驱动。
需要校验吗?
涉及金额的变化的一些正常操作,做校验多点保障。
数据库校验:用户的金额,账户这些,肯定会检查账户的。
如果不校验数据库,全写在Excel里面,全靠眼睛看期望值实际值,是比较困难的。
利用数据库完成数据的查询。
数据库如何写成一个类?
配置文件+数据库操作类。
8.应该要用哪些框架或者思路?
Excel+请求+mysql
Excel存请求数据和结果。
请求就是http请求帮你完成请求,最后查询数据,还是要写回Excel。
Http:requests
sokect:Python什么库支持这个协议。
webservice:suds库。
dubbo
在不太懂这个协议怎么用的时候,先写成框架,先发一个请求,能够请求成功之后,再去考虑把它封装成类,然后进行单元测试,数据参数化,写回结果。
框架:写的这一整套代码就是框架。
就是第三方模块的学习,把它组装,然后就成了框架。
例如我写的http接口的框架,以后遇到别的http接口,可以按照这个套路去做,改下用例,稍微改下里面的代码就可以了,这个就是框架的意义。
框架:步骤 思路 用到哪些技术?
unittest ddt openpyxl mysql requests config log email jenkins unittest+python+ddt
9.必会:每个接口跟数据表的一个对应关系。
10.普及数据分离/代码分离/文件分离的概念。
11.补充
soapui看看webservice有什么接口地址。
13083138929
根据手机号码的后3位去进行存储,举个例子,13083138929,那么短信验证码会存在29库,89表。
如果找短信验证码,写sql语句根据手机号码去查,找到对应的库,找到对应的表,这就是分表分库设计。
任何地址,不管是用任何工具还是写代码,还是各种请求,地址后面不能有空格,有空格就不识别这个地址。
12.遇到报错怎么办?
对于小白来说,打印比Debug好用。如果发现报错了,可以打印下。
哪行报错了,就在调用之前和调用后给它打印出来。
自己解决的问题,才会记得住!!!
鱼的记忆,所以做笔记很重要!!!
勤动手写,不要老是问别人,实在自己解决不了的情况下,问了别人,找到了答案,切记一定要记下来!!!!
13.返回结果要关注什么?
关键字段。
跑接口最关注的是状态码是不是对的,前期功能测试都测过了,所以只考虑code或msg,以这种进行校验就可以了。
不同的数据库用不同的数据驱动。
14.unittest核心步骤
15.常识
web自动化很重要!
先学web再学app。
先熟悉业务,才能写框架。
初步框架1-2周,1个月时间完成。
写框架需要接口地址,接口需求文档
最后:【可能给予你一定的帮助】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
关注我的微信公众号【软件测试小dao】免费获取~
我的学习交流群:644956177 群里有技术大牛一起交流分享~
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
以上是关于接口自动化知识梳理的主要内容,如果未能解决你的问题,请参考以下文章