接口测试

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

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

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

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

       abc     123

5. cookie、session

  cookie存在本地的一个键值对

    ymyg_login:219603e81aa3319699d3f17697f8b066

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

    xssdnr_login : 219603e81aa3319699d3fa7697f8b066
    ymyg_login:219603e81aa3319699d3f17697f8b066

6. 总结

  测接口的话,接口文档。

  get

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

  post、get请求的区别

  http请求:

    url?name=xxx

    请求头

    请求体

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

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

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

 接口测试

8. 怎么用postman做自动化

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

  postman参数化:使用{{parameter_name}}

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

  运行:点击“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”。

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

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

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

11. python数据类型:

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

12. 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('不及格')

13. 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里面的代码

14. 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("错误次数用完了")

15. 字符串格式化 

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)

 





上一篇:[LeetCode]374. Guess Number Higher or Lower ★


下一篇:python-20190707