直接导入Excel用例,进行接口自动化测试

前言

这是一个给测试小白用的“自动化用例”的工具跟代码,大神们看了别见笑。纯属学习用的。

为啥叫接口自动化用例工具

当然就是导入我们常规写的用例excel,然后他就会咻咻咻~~~的把所有的用例接口跑一遍,然后我们就坐着等,完成后他就会打印出文本,我们就可以在文本查看各种请求状态 如:“接口成功或失败”,“断言结果”,“异常状态”,“各个接口的返回结果”

我们先来看下这个工具使用结果,不然大家一脸懵逼的不知道我在说啥,也不知道干啥用的。

我们先来看下用例表:

如上图,我们把接口一行行的写上去,然后打开我们的工具如下图:

我们看到就是点击开始执行,结束后自动生成文件,从gif上我们可以看到,我们对登陆接口进行压测,对测试接口进行普通测试,他就会分别打印对应的文本,也可以直接从抓包工具直接可以看具体信息。
看到这如果你有感兴趣的话,我们就来开始讲解如何使用

使用说明:

1、运行程序

2、界面说明:

   从这张图片里,我们唯一看不懂的就是那个 “是否启动关联顺序请求” 是吧。
   什么是关联顺序,就是我们有时候第一个接口请求完成后,第二个接口要拿第一个接口里的参数,比如:我第一个接口为登陆接口,登陆完成后,要把Token值给第二个接口使用。这时候我们就要勾选“是否启动关联请求”。

3、我们先来说下3种模式、普通模式、压测模式、关联顺序模式。

      普通模式:

        就是不要去勾选那个关联顺序请求,然后设置下并发数量,也不要设置太多,尽量选择合适的值来设置。
        缺点就是我们的所有值都是写死的。如果要动态取值,那么就用“关联顺序”

      压测模式:

        有人就疑问,压测哪里开启,其实就是在用例表开启,我们先来看下用例表,从下图我们可以看到有个“压测”,输入值,他就会对这个接口进行压测,里面有备注就不在说明了
      关联顺序模式:

        关联顺序模就是勾选那个框框,然后并发数量就会失效,因为我们是取指定接口的值,所以只能按顺序从第一个接口慢慢请求完成,如果哪个接口取值失败,就会中断,在文本会打印出哪个序号下的接口发生中断,检测用例表填写规则跟接口返回参数是否符合你的要求,如何取哪接口的值,我们会叫用例表使用里面说明。

4、三大模式讲完了,我们就来讲解下最重要的部分,那就是用例表的使用

这个会比较复杂点,但是如果你了解了使用方法,其实很简单的。无非就是复制粘贴,改改字段值,特别是公司接口模式都是差不多的。首先我们来看下完整的用例表:


      先从表名开始

       我们左下角有个2个表,一个是“测试”,一个“顺序”,这名字是随便取的,但不要有重复的,避免错误。我们每次执行只会执行一个表的接口,不能执行全部的表。

      然后我们来看各个列的值,其实里面一些特殊用法都有备注
        (1) 序号:最好按顺序来,用于标志是哪个接口
        (2) 接口说明:这个就不说了
        (3) Url:这个也不说了
        (4) Header:这个也不说了,如果Hearder有用到动态值,那么就参考【关联顺序】的使用,后面会统一讲解
        (5) Http:这个目前只支持get跟post(包含表单,跟json模式)暂不支持上传文件跟图片之类的,后续补充,谢谢。
              传值就固定3种 : get、post_form和post_json
              post_form就是post的表单模式,post_json就是post提交json模式
        (6) json:就是Http要设置post_json模式,然后在json列直接把整串json复制进去就可以了。
        (7) 字段:就是Http设置get或者post_form才能使用,post_json模式就不用填写这一列了。当然咯get或者post_form就不用填写json那一列了。我们先来看图片如何设置的:

        这一看我们就懂了吧,哪个字段等于哪个值。很明显【注意:】2个字段直接要用换行来处理,不然会出现问题,至于怎么换行自己百度excel怎么换行,windows是Alt+Enter ,Mac我就不知道了。至于我们要动态取值,还是那句话跟Header一样,我们后面会统一在参【关联顺序】的使用,后面会统一讲解

        (7) 压测:写法就是 1000,10 第一个为要压测的总数量,第二个为并发数量
        (8) 断言:

             这个就比较复杂了点,跟后面的【关联顺序】有的类似、
            这里的断言有2种,1种是指定返回的字段等于某个值,第2种就是指定返回的字段等于数据库的哪个值,我们先来看下图片



我们可以看到多个断言条件就是跟字段的一样,用换行来处理。
我们先假设返回的json为

{
    "mobile": "15000000000",
    "User": {
        "name ": "张三",
        "info ": "xxxxxxx"
    },
    "sites": [{
        "pageIndex": 2,
        "pageSize": 6
    }, {
        "pageIndex": 1,
        "pageSize": 6
    }]
}

我没一条条条件来说明:
首先:
1、mobile = 15000000000         看下就知道就是一层的mobile等于啥值
2、User,name = 张三                              我们通过“,”来代表下一层数据,,就是User里面的name值
3、sites[1],pageIndex = 1 /4、                      就sites是数组,取出第一层的sites的第2个数组值里的pageIndex值
4、还有一种情况就是最外层是一个数组,我们备注里面也说了用 [0],User,name这样的方式,第一个数组里面的User里面的name值
5、最后一个:sites[1],pageIndex = 数据库(特步,shujuku[5],user,name)
前面的取字段我们就不管了,已经说了,来说等号后面   “ 数据库(特步,shujuku[5],user,name) ”  可能一脸懵逼,我们先来看下数据表的excel


image.png

意思是:工作簿表为“特步”(可以理解为,当前项目是特步)
序号为“1”,数据库名字为“shujuku”,表名“user”,字段“name”
这样是不是就能理解了。

到里面可以先尝试下怎么操作,可以试下普通测试,跟压力测,我都一份测试数据,你们可以在那份测试数据进行修改就可以了。

5、接下来我们来讲“关联顺序请求”

其实用法都一样,唯一区别就是界面要勾选“是否关联顺序请求”
其二就是Header、json、字段 会存在动态获取值。所以我们加了一个标识符,,那就是【】,有【】就会代表需要动态取值,然后括号里面的内容写法就是跟断言的写法一样,只是第一个要序号。

假如:我们要取接口10的返回json串的User下的name值:

则用【10,User,name】,如果含有数组,则,【10,User[0],name】如果最外层就是个数组则使用【10,[0],User,name】
如果需要时间戳:则使用【时间戳】,就会获取当前的时间戳,单位为秒。
比如Heard

Content-Type:application/json; charset=utf-8;time=【时间戳】

比如Json

{
 "password": "e10adc3949ba59abbe56e057f20f883e",
 "mobile": 【1,user,_id】
}

比如字段:

appId = 【1,user,_id】
timestamp = 【时间戳】
sign = 44f443aa92f30f03ae0fff00eaa80a24

好了本章内容结束了。还不懂的可以随时问我,谢谢,后面功能会慢慢补全。

工具下载地址

提取码 :eagk

代码等我整理下,后续再上传。

你可能感兴趣的:(直接导入Excel用例,进行接口自动化测试)