接口自动化知识梳理

接口自动化知识梳理

  • 学习知识块:基础知识 类与对象 单元测试 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个月时间完成。

写框架需要接口地址,接口需求文档。


欢迎扫码关注!

接口自动化知识梳理

接口自动化知识梳理