• 接口测试用例设计 at October 30, 2019

    个人愚见, #问题2的情况假如一个业务是由多个接口来实现的,需要对单个接口做接口测试还要多个接口串起来做自动化测试。 比如购买会员或者下单这种业务。

  • 迷惑行为??

  • 看提示, 应该是缺requests库

  • 因为整个中为这个class名的元素不是唯一的, 无法定位到你想要的那个元素。

  • #问题2: 这个activity是雪球的启动页面(android.intent.action.MAIN),要打开雪球肯定要先启动这个activity,打开其他的activity会出错的。

  • https://testerhome.com/topics/12559 这个帖子有解决方案

  • 课后作业

    from appium import webdriver

    caps = dict()
    caps["platformName"] = "Android"
    caps["deviceName"] = "demo"
    caps["appPackage"] = "com.xueqiu.android"
    caps["appActivity"] = ".view.WelcomeActivityAlias"
    caps["autoGrantPermissions"] = True
    caps["unicodeKeyboard"] = True
    caps["resetKeyboard"] = True

    driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)

    driver.implicitly_wait(20)

    add_button = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.LinearLayout[1]/android.widget.FrameLayout[2]/android.widget.ImageView[2]")
    add_button.click()

    add_in_my_choice = driver.find_element_by_id("com.xueqiu.android:id/item_add_stock")
    add_in_my_choice.click()

    driver.implicitly_wait(2)

    input_text = driver.find_element_by_id("com.xueqiu.android:id/search_input_text")
    input_text.clear().send_keys('alibaba')

    follow_button = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.support.v4.view.ViewPager/android.widget.RelativeLayout/android.widget.ListView/android.widget.LinearLayout[1]/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]/android.widget.TextView")
    follow_button.click()

    driver.quit()
    1. 统计linux上某个进程的cpu增长曲线

      top -b -d 1 -n 30 -p 5010| grep --line-buffered '^ 5010'| awk '{print $9}' | gnuplot -e "set terminal dumb;plot '<cat' using 1 with line"![]

    2. 自动化业务执行,给出cpu增长曲线
      自动化执行部分

      #!/bin/bash
      start_app(){
      adb shell am start -n com.sina.weibo/com.sina.weibo.VisitorMainTabActivity;
      }
      get_wm_size(){
      adb shell wm size|awk '{print $3}'|awk -F 'x' '{print $1, $2}';
      }
      swipe(){
      adb shell input swipe $(awk "BEGIN{print $1*0.5}") $(awk "BEGIN{print $2*0.8}") $(awk "BEGIN{print $1*0.5}") $(awk "BEGIN{print $1*0.4}") $3;
      }
      test(){
      start_app;
      size=($(get_wm_size));
      width=${size[0]};
      length=${size[1]};
      sleep 6;
      for i in $(seq 50); do swipe $width $length 500; done
      }
      test

      图表统计部分

      top -d 1 -n 55 | grep --line-buffered 'com.sina.weibo'  | awk '{print $5}' | gnuplot -e "set title '微博CPU曲线图'; set terminal dumb; plot '<cat' using 1 with line "

  • curl -s https://testerhome.com/api/v3/topics.json | sed -e 's/{"topics":\[/^/g' -e 's/\]}/^/g' -e 's/},{/}^{/g' | awk 'BEGIN{RS="^"}{print $0}'

  • 1. awk '{print $7}' nginx.log | sed -E 's#[0-9]{3,}#d#g'| sort | uniq -c | sort -nr | head -1
    结果: 584 /cable
    2. 分了两种情况讨论 a. 匹配以/topic开头的所有请求 b.匹配/topic/xxx(可为数字或字母)的请求
    a——————
    awk '{print $7, $(NF-1)}' nginx.log | grep '^/topics/.*'| awk 'BEGIN{sum=0}{sum+=$2}END{print "平均响应时间:",sum/NR}'
    平均响应时间: 0.101318
    b——————
    awk '{print $7, $(NF-1)}' nginx.log | grep -E "^/topics/\w*\s|^/topics/\w*\?" | awk 'BEGIN{sum=0}{sum+=$2}END{print "平均响应时间:",sum/NR}'
    平均响应时间: 0.157336