测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

我所了解的模块接口测试大体分为两类:模块接口测试和web接口测试

模块接口测试是单元测试的基础。它主要测试模块的调用与返回。

过这个例子放大了来看,假如几个开发人员去完成一个系统,他们分别开发一些功能模块,最终数据会在这些功能模块之间传递。当A开发好自己负责的功能模块后会提供相应的接口(类方法、函数),B肯定需要模拟数据调用A写的接口,检查返回值是否正确。

当然,测试的手段遵循测试的一些要点。

  1、检查接口返回的数据是否与预期结果一致。

  2、检查接口的容错性,假如传递数据的类型错误时是否可以处理。例如上面的例子是支持整数,传递的是小数或字符串呢?

  3、接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理。

  4、接口的性能,接口处理数据的时间也是测试的一个方法。牵扯到内部就是算法与代码的优化。

  5、接口的安全性,如果是外部接口的话,这点尤为重要。

web接口测试

  web接口测试又可分为两类:服务器接口测试和外部接口测试。

  服务器接口测试:是测试浏览器与服务器的接口。这个很容易理解,我们知道web开发一般分前端和后端,前端开发人员用html/css/javascript等技术。后端开发人用php/java/python/ruby等各种语言。用户输入的数据是输入到的前端页面上,怎样把这些数据传递的后台的呢?通过http协议的get与post请求来实现前后端的数据传递。这也可认为是接口测试,调用的登录接口还是查询接口,传参的是用户密码还是搜索关键字。

  外部接口测试:这个很典型的例子就是第三方登录,比如你做的新系统免于新用户重新注册的麻烦会提供第三方登录,那用户在登录的时候调用的就是第三方登录的接口,由第三方验证用户名和密码并且返回给当前系统。

  对于服务器接口测试,我们来看例子。

==================================

准备:

Python 下载地址: https://www.python.org/

Flask 微型web框架。flask安装:> pip install flask

==================================

查看flsk是否安装成功。

fromflaskimportFlaskapp= Flask(name)@app.route("/user/")defuser(name):return"

hello %s !

"%nameif__name__=='main': app.run(debug=True)

通过浏览器访问:http://127.0.0.1:5000/user/zhangsan

这是一个最简单的get请求,我们可以把“zhangsan”改成任意字符来时行测试。

对于web接口测试来说有哪些测试要点:

  1、请求是否正确,默认请求成功是200,如果请求错误也能返回404、500等。

  2、检查返回数据的正确性与格式;json是一种非常创建的格式。

  3、接口的安全性,一般web都不会暴露在网上任意被调用,需要做一些限制,比如鉴权或认证。

  4、接口的性能,web接口同样注重性能,这直接影响用户的使用体验。如果我搜索一个关键字半天结果都没返回,果断弃用。

开发的能力会极大的影响你的各种测试技术的学习能力,和使用深度

接口测试很有必要了解web开发,只有知道接口是如何被开发出来的。才能把接口测试做更好

rom django.db import models

from django.contrib import admin

Create your models here.

class BlogsPost(models.Model):

title = models.CharField(max_length = 150)

body = models.TextField()

timestamp = models.DateTimeField()

admin.site.register(BlogsPost)

http://www.cnblogs.com/fnng/p/3737964.html

tftp

命令格式为:

tftp [option] ... host [port]

如果要下载或上传文件的话是一定要用这些option的。成都明诚科技。

-g表示下载文件(get)

-p表示上传文件(put)

-l表示本地文件名(local file)

-r表示远程主机的文件名(remote file)

例如,要从远程主机192.168.1.2上下载embedexpert,则应输入以下命令

tftp -g -r embedexpert 192.168.1.2

https://testerhome.com/

参考文章:http://www.zavedil.com/software-mtp-support-rhel-6/

要达到读取安卓手机内容的目的,我们需要安装go-mtpfs,在这之前,需要先装上一些基本的配件:

1.yum install bison gcc mercurial libusb-devel

2.如果你的电脑没有libusb-1.0的话,在安装过程中会出错,下面是安装的链接:

http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.9/libusb-1.0.9.tar.bz2

下载到一个/tmp之类的文件夹中,解压 tar xjvf libu** ,然后进入该文件夹,依次执行 ./configure ;make;make install(当然这需要在root的身份下)

安装完之后,还需要配置环境:

export PKG_CONFIG_PATH=/usr双击查看原图b/pkgconfig:$PKG_CONFIG_PATH 其中的/usr双击查看原图b/不一定是存在pkgconfig的,具体要写pkgconfig存在的位置

3.安装go语言包,详见我的博客“CentOS6.5下安装golang”

4.下载go-mtpfs

mkdir /tmp/go

export GOPATH=/tmp/go

go get github.com/hanwen/go-mtpfs

cp /tmp/go/bin/go-mtpfs /usr/bin

chmod 4755 /usr/bin/go-mtpfs

5.配置挂载:

     chmod 4755 /bin/fusermount
mkdir /mnt/phone
chmod 777 /mnt/phone
然后在/usr/bin 中新建两个文件phone-mount.sh 和 phone-unmount.sh 并修改它们的权限为 777.
编辑两个文件的内容:

phone-mount.sh:

/bin/bash

Export a suitable path - it is requred by the module,

but will not be supplied by the udev:

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

Run the mounter as the user who will access the phone -

replace USER with your username

su USER -c "/usr/bin/go-mtpfs /mnt/phone &"

Exiting is important, else udev may hang here forever

exit

phone-unmount.sh:

/bin/bash

Export a suitable path

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

Run the FUSE unmounter

/bin/fusermount -u /mnt/phone

   保存后再修改权限为755。
最后到/etc/udev/rules.d 文件夹中,新建一个rules文件,当然,如果你之前已经创建或者文件夹里存在诸如51-android.rules这样子的文件,那就不用新建了:

进入新建的文件夹,编辑:

SUBSYSTEM"usb", ATTRS{idVendor}"AAAA", ATTRS{idProduct}"BBBB", ACTION"add", RUN+="/usr/bin/phone-mount.sh"

ENV{ID_VENDOR_ID}"AAAA", ENV{ID_MODEL_ID}"BBBB", ACTION=="remove", RUN+="/usr/bin/phone-unmount.sh"

其中 AAAA是你手机的供应商识别吗,而BBBB是你的手机产品识别码。你可以用lsusb的指令查看手机的具体ID。

6.写在后面,至此,重启后理论上应该就可以即插即用了,不过我出了点小差错,没反应。

晕,,,,,所以我只能直接用指令罗,

su USER -c "/usr/bin/go-mtpfs /mnt/phone &"

其中USER记得替换为你自己的名字,在/mnt/phone里面终于出现我想要的东西。好吧,至少目的达到,不能即插即用的原因有待排查

参考文章:http://www.zavedil.com/software-mtp-support-rhel-6/

要达到读取安卓手机内容的目的,我们需要安装go-mtpfs,在这之前,需要先装上一些基本的配件:

1.yum install bison gcc mercurial libusb-devel

2.如果你的电脑没有libusb-1.0的话,在安装过程中会出错,下面是安装的链接:

http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.9/libusb-1.0.9.tar.bz2

下载到一个/tmp之类的文件夹中,解压 tar xjvf libu** ,然后进入该文件夹,依次执行 ./configure ;make;make install(当然这需要在root的身份下)

安装完之后,还需要配置环境:

export PKG_CONFIG_PATH=/usr b/pkgconfig:$PKG_CONFIG_PATH 其中的/usr b/不一定是存在pkgconfig的,具体要写pkgconfig存在的位置

3.安装go语言包,详见我的博客“CentOS6.5下安装golang”

4.下载go-mtpfs

mkdir /tmp/go

export GOPATH=/tmp/go

go get github.com/hanwen/go-mtpfs

cp /tmp/go/bin/go-mtpfs /usr/bin

chmod 4755 /usr/bin/go-mtpfs

5.配置挂载:

     chmod 4755 /bin/fusermount
mkdir /mnt/phone
chmod 777 /mnt/phone
然后在/usr/bin 中新建两个文件phone-mount.sh 和 phone-unmount.sh 并修改它们的权限为 777.
编辑两个文件的内容:

phone-mount.sh:

/bin/bash

Export a suitable path - it is requred by the module,

but will not be supplied by the udev:

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

Run the mounter as the user who will access the phone -

replace USER with your username

su USER -c "/usr/bin/go-mtpfs /mnt/phone &"

Exiting is important, else udev may hang here forever

exit

phone-unmount.sh:

/bin/bash

Export a suitable path

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

Run the FUSE unmounter

/bin/fusermount -u /mnt/phone

   保存后再修改权限为755。
最后到/etc/udev/rules.d 文件夹中,新建一个rules文件,当然,如果你之前已经创建或者文件夹里存在诸如51-android.rules这样子的文件,那就不用新建了:

进入新建的文件夹,编辑:

SUBSYSTEM"usb", ATTRS{idVendor}"AAAA", ATTRS{idProduct}"BBBB", ACTION"add", RUN+="/usr/bin/phone-mount.sh"

ENV{ID_VENDOR_ID}"AAAA", ENV{ID_MODEL_ID}"BBBB", ACTION=="remove", RUN+="/usr/bin/phone-unmount.sh"

其中 AAAA是你手机的供应商识别吗,而BBBB是你的手机产品识别码。你可以用lsusb的指令查看手机的具体ID。

6.写在后面,至此,重启后理论上应该就可以即插即用了,不过我出了点小差错,没反应。

晕,,,,,所以我只能直接用指令罗,

su USER -c "/usr/bin/go-mtpfs /mnt/phone &"

其中USER记得替换为你自己的名字,在/mnt/phone里面终于出现我想要的东西。好吧,至少目的达到,不能即插即用的原因有待排查

http://blog.sina.com.cn/s/blog_12f37f0f00102wi8q.html

suibi1117的更多相关文章

随机推荐

  1. apache开启url rewrite模块

    在把服务器数据转移到本地服务器之后,本地打开首页出现排版紊乱等问题,经过大神指点说是url rewrite的问题. 本篇文章主要写怎样开启apache的url rewrite功能. 打开Apache2 ...

  2. react 不能往组件中传入属性的值为 undefined

    在使用 andt design 的时候遇到个需求,需要清除 Select 组件选中后的值,让它变成什么都没选中,显示 placeholder 刚开始以为设置为 null 即可,结果发现设置为 null ...

  3. Unity Shader _Time

    _Time是个4维向量,跟Unity3D中的deltaTime(这是个一维的,数值)不同. float4 _Time : Time (t/20, t, t*2, t*3), use to animat ...

  4. Java的位运算 待整理

    位运算:二进制运算 Java的异或运算^ 真^假=真 假^真=真 假^假=假 真^真= 假,这四个是在网上copy的例子,真是1,假是0 但它却是说明了Java异或运算的基本法则,那就是:只要两个条件 ...

  5. mvn使用问题

    http://mirrors.ibiblio.org/maven2/org/apache/maven/archetypes/ http://blog.csdn.net/u011340807/artic ...

  6. URI、URL和URN

    URI.URL和URN URI :Uniform Resource Identifier,通用资源标识符: URL:Uniform Resource Locator,统一资源定位符: URN:Unif ...

  7. 001. 为input type=text 时设置默认值

    1. 前端HTML代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Defa ...

  8. oracle监控脚本

    简单命令 1.显示服务器上的可用实例:ps -ef | grep smon2.显示服务器上的可用监听器:ps -ef | grep -i listener | grep -v grep3.查看Orac ...

  9. VC ++ MFC activex 控件获取连接的VPN 信息

    vc++  MFC 进行activex  控件的开发步骤就不用多写了,只是简单的说明一下方法,以及具体的代码: 使用的类库是 windows 系统的 rasapi32.dll 记住需要添加的头文件如下 ...

  10. 【转】DNS劫持和DNS污染的区别

    什么是DNS服务器? 简单来说,DNS服务器就是域名管理系统. DNS(Domain Name System)是域名解析服务器的意思. DNS服务器是干什么的? DNS服务器在互联网的作用是:把域名转 ...