接口测试

1. 接口测试,也是功能测试。

  接口:xml格式,返回的数据通常都是json格式

2. 客户端:html、js、css

      Android、object-c、swift

      浏览器、app等等

  服务端:java、php、python

  client server

3. 接口测试:

  127.0.0.1:8000/pay?order_id=xxx&money=2699

   接口文档包含url、请求方式get/post、请求参数、返回参数

  get请求:不需要借助工具,直接用浏览器

      url?name=小黑&sex=女&age=18

       abc     123

4. cookie、session

  cookie存在本地的一个键值对

    ymyg_login:219603e81aa3319699d3f17697f8b066

  session存在服务端的一个键值对  

    xssdnr_login : 219603e81aa3319699d3fa7697f8b066
    ymyg_login:219603e81aa3319699d3f17697f8b066

5. 总结

  测接口的话,要根据接口文档来。

  get

  post:传cookie、传header、上传文件

  post、get请求的区别

  http请求:

    url?name=xxx

    请求头

    请求体

  1. get请求参数是在url后面的,只有url和请求头,没有请求体;

  2. post请求参数是在body里面的,post请求有url、请求头和请求体。

6. 怎么写接口测试用例:可以用excel写文档

     

7. 怎么用postman做自动化

   新建一个Collection,Collection中新建一个Request,get请求用Params传参;post请求用Body传参。

  postman参数化:请求中引用使用{{parameter_name}}

  参数化文件:第一行是参数名字,跟请求中引用的参数名字对应,下面写参数的值,多个参数用英文逗号分隔

  请求需要登陆才能请求到,则一般情况下“Headers”中是需要加cookie参数的。

  运行:点击“Runner”-"Choose a collection or folder"中选择要执行的请求,下面Iterations是循环次数,Data中选择参数化文件,“Data File Type”中选择“text/csv”,然后右侧出现“Preview”,点击Preview能看到参数化的值。配置好后点击“Run collectName”就执行了。

    检查点:postman请求中有“Tests”标签,在它里面写校验,有固定的格式,常用“Response body:C contains string”

  如果校验结果的时候,结果中的数据也是需要参数化的,则把校验的内容放入请求的参数化文件,然后“Tests”中选择“Response body: C contains string”。出现下面:   

        pm.test("Body matches string", function () {
        pm.expect(pm.response.text()).to.include(“”);
       });

   include中不能直接使用“{{check}}”,这样取不到参数化文件中的check列的值。只能通过函数获取变量的值include(pm.variables.get("check"));这时运行就通过了。

  “Run Results”如果更改了请求或校验,则不能使用Retry,要关掉并重新打开Runner。

  “Run Results”如果出现“This request does not have any tests.”,说明没有保存请求,要在请求url右侧点击“Save”。

8. 自动化测试:说白了就是写代码帮你测试

  用自动化测试工具不能读取数据库运行测试用例,自动生成发送报告。

 测试开发:开发一些框架工具  

9. python数据类型:

  msg="don't worry"   #字符串  string
  msg2='你长得真"好看"'
  msg3='''don't worry,你长得真"好看"'''
  age=18    #int类型
  score=27.32   #float
  print('hello world!')
  print("hello world!")

10. if判断

  #input接收输入,且都转成string类型
  #int()类型转换,把变量转成int类型
  #> < >= <= == !=
  score=input('请输入成绩:')
  print(type(score))    #type()获取数据类型
  score=int(score)
  if score>=90:
    print('优秀')
  elif score<90 and score>=80: #加括号也行,(score<90)/(score+1)>5,有运算优先级加最好,美观
    print('良好')
  elif score>=60 and score<80:
    print('及格')
  else:
    print('不及格')

11. while循环

  #猜数字的小游戏,最多猜7次
  #1. 随机产生一个数字
  #2. 循环7次
  #3. 输入一个数字,int
  #4. 判断大于还是小于,还是等于。如果是等于,游戏结束break;
  #5. 小于,大于,循环次数+1,提示大了还是笑了
import random
number=random.randint(1,100)    #随机产生一个1-100之间的整数
count=0
while count<7:
  guess=input('请输入一个1-100之间的数字')
  guess=int(guess)
  count=count+1
  if guess>number:
    print('猜大了')
    continue
  elif guess<number:
    print('猜小了')
    continue
  else:
    print('恭喜你,猜对了',number)
    break
else:
  print('错误次数用完了')
#while对应一个else,在循环正常结束之后执行else里面的代码

12. for循环

#count自动从0开始,并且自动加1
# for count in range(5):
# print('添加一个用户')
import random
number=random.randint(1,100) #随机产生一个1-100之间的整数
for count in range(7):
guess=input("请输入一个1-100之间的数字")
guess=int(guess)
if guess > number:
print("猜大了")
continue
elif guess <number:
print("猜小了")
continue
else:
print('恭喜你,猜对了',number)
break
else:
print("错误次数用完了")

13. 字符串格式化 

import datetime
msg='欢迎xxx登陆,今天的日期是xxx'
username='test'
# date='2019-07-27'
date=datetime.datetime.today()
# msg='欢迎'+username+'登陆,今天的日期是'+date #效率不高
msg2='欢迎%s登陆,今天的日期是%s' % (username,date) #用了%s,不管后面的变量是inth爱是什么类型的都没有关系
print(msg)
print(msg2)

 14. 写一个登陆的程序,最多登陆失败3次,输入账号密码,如果登陆成功,程序结束,提示欢迎xx登陆,今天的日期是xx

  登陆失败,重新登陆。要判断输入是否为空,什么也不输入,输入空格都算空。





posted on 2019-07-28 18:37  花溪月影  阅读(343)  评论(0编辑  收藏  举报